今天在做IO流的一个小练习:将C盘一个文本文件复制到D盘(本例中是在同一目录下进行文件复制)。- import java.io.*;
- class CopyText
- {
- public static void main(String[] args)
- {
- FileWriter fw=null;
- FileReader fr=null;
- try
- {
- fw=new FileWriter("Demo_copy.txt");
- fr=new FileReader("Demo.java");
- int coun=fr.read();
- while (coun!=-1)
- {
- fw.write(coun);//单个字符进行写入,读一个写一个
- }
- }
- catch (IOException e)
- {
- throw new RuntimeException("读写失败");
- }
- finally
- {
- if(fr!=null)
- try{fr.close();}catch (IOException e){}
- if(fw!=null)
- try{fw.close();}catch (IOException e){}
- }
- }
- }
复制代码 运行的时候出现这样的问题:
在ctrl+c停止后,刷新目录出现
复制的文件比源文件大得多,而且程序运行的时间越长,Demo_copy.txt越大。
我将上面while循环进行更改:
int coun=0;
while ((coun=fr.read())!=-1)
{
fw.write(coun);
}
再次程序运行无误,文件复制成功。请问这是什么情况呢?
|
|