输入输出流之综合学习
利用输入输出流进行复制操作
一、错误例子
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找不出错误就多想想自己写的代码的逻辑问题。