import java.io.*;
public class TestCopy{
public static void main(String[] args){
try{
FileReader fr=new FileReader("E:/Hello.txt");
FileWriter fw=new FileWriter("E:/ying.txt");
/*
while(fr.read()!=-1)//你'这个while语句是有问题的,假如文件中的内容是"12345";在while(fr.read()!=-1)中读取到"1"时,为true,执行fw.write(fr.read());但是在fw.write(fr.read())中是把"2"写入了,因为在 f w.write(fr.read())中fr.read()又往下读取了一个字符,也就是说读取两个字符,只写入了一个字符.
{
fw.write(fr.read());
}
*/
我改了下,试了是有用的,你试试:
int len = 0;
char[] buf = new char[1024];
while((len=fr.read(buf))!=-1){
fw.write(buf,0,len);
}
只要把原来while语句部分替换就可以了
fr.close();
fw.close();
}
catch(FileNotFoundException ne){
System.out.println("找不到指定的文件");
System.exit(-1);
}
catch(IOException ie){
System.out.println("文件读取错误");
System.exit(-1);
}
System.out.println("文件已经复制");
}
}
//我事先在E盘建立了一个Hello.txt文档,但是运行程序之后,E盘中生成的文件ying.txt里的内容和Hello.txt中的内容不同 |