输入输出流之综合学习
利用输入输出流进行复制操作
一、错误例子
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class CopyDemo {
public static void main(String[] args) {
try {
//创建输入流
FileInputStream input = new FileInputStream("D:\\1.txt");
//创建输出流
FileOutputStream output = new FileOutputStream("E:\\121.txt");
while (input.read()!=-1){
//将按字节输入流读到数据通过字节输出流输出到文本中
//错误点,input.read()一次用来判断一次用来读取输出
output.write(input.read());
}
//关闭流
input.close();
output.close();
} catch (Exception e) {
System.out.println("复制发生错误");
}
}
}
错误原因:input.read()方法使用了两次
二、正确例子
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class CopyDemo {
public static void main(String[] args) {
try {
//创建输入流
FileInputStream input = new FileInputStream("D:\\1.txt");
//创建输出流
FileOutputStream output = new FileOutputStream("E:\\111.txt");
int ch = 0;
while ((ch=input.read())!=-1){
//将按字节输入流读到数据通过字节输出流输出到文本中
output.write(ch);
}
//关闭流
input.close();
output.close();
} catch (Exception e) {
System.out.println("复制发生错误");
}
}
}
debug找不出错误就多想想自己写的代码的逻辑问题。
Java输入输出流:文件复制正确做法
这篇博客探讨了Java中输入输出流用于文件复制的常见错误及其解决方案。作者指出,错误通常在于对input.read()方法的不当使用,并强调当debug无果时,应深入思考代码逻辑。随后,提供了正确的实现例子。
1275

被折叠的 条评论
为什么被折叠?



