请教:关闭流的问题.
下面这个程序(创建顺序文本文件)中:
import java.io.*;
class BufferedWriterDemo{
public static void main(String args[]){
try{
FileWriter fw=new FileWriter(args[0]);
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i <10;i++)
{bw.write( "Line "+i+ "\n\r ");}
bw.close();
}catch(Exception e){
System.out.println( "Exception: "+e);
}
}
}
关闭bw.close是什么意思?为什么不是fw.close;为什么一fw.close创建的文件里的内容就没了?
而这一个程序(读顺序文本文件):
import java.io.*;
class BufferedReaderDemo{
public static void main(String args[]){
try{
FileReader fr=new FileReader(args[0]);
BufferedReader br=new BufferedReader(fr);
String s;
while((s=br.readLine())!=null)
System.out.println(s);
br.close();
} catch(Exception e){
System.out.println( "Exception: "+e);
}
}
}
关闭的为什么是fr.close()?
请帮忙解惑,谢谢!!!!!!!!!!!!!!
------解决方案--------------------第一个程序,
如果直接关闭fw.close(),应该在之前bw.flush();
因为bw的缓冲区有内容,在fw.close()时,没有写入文件,所有你说文件内容没有了.
可以先bw.flush();再fw.close();
第二程序,
先关哪一个都一样吧!
因为你已经把内容读完了.