黑马程序员技术交流社区
标题:
关于流的问题
[打印本页]
作者:
papercup
时间:
2014-3-29 23:58
标题:
关于流的问题
本帖最后由 papercup 于 2014-3-30 10:00 编辑
今天看了关于IO流的视频,流在使用后一定要关闭。但是close();方法描述说的是:关闭此流,但要先刷新它。那么它具体是怎么做的呢?
自己测试了一下:
import java.io.*;
class WriterDemo1{
public static void main(String[] args) throws IOException{
FileWriter fw = new FileWriter("E:\\demo.txt");
fw.write("abscsdtdsafdas");
//fw.flush(); //刷新该流的缓冲
fw.close();
// fw.write("xxxxxxx");
// fw.flush();
}
}
复制代码
将fw.flush();注释之后,得到的结果一样,那么fw.close();是不是一样会刷新这个流,之后才将它关闭掉呢?
作者:
郝大龙0104
时间:
2014-3-30 00:25
嗯 。。 是的 刷新完再关闭的
flush( )方法是刷新一下字符流, 但是此时 字符流不关闭 还可以用的
但是 close()方法 是先刷新一下字符流 然后再关闭流 以后流就不能再用啦
作者:
NO?
时间:
2014-3-30 00:37
1、如果你将fw.flush();注释,那么demo。txt中的文本信息为"abscsdtdsafdas"
2、如果你不将将fw.flush();注释,那么demo。txt中的文本信息为"abscsdtdsafdas"
但是会出现运行时会出现异常。
如Exception in thread "main" java.io.IOException: Stream closed所示。
代码改进如下;你可以得到你要的效果了
import java.io.*;
class WriterDemo1{
public static void main(String[] args) throws IOException{
FileWriter fw = new FileWriter("E:\\demo.txt");
fw.write("abscsdtdsafdas");
//fw.flush(); //刷新该流的缓冲
// fw.write("xxxxxxx");
// fw.flush();
fw.close();
}
}
作者:
H-Deka
时间:
2014-3-30 09:58
close()和flush()的区别就是前者关闭流之前会刷新一次流的缓冲区然后关闭此流,后者单纯的刷新流而已,close()关闭此流后此流就不能再用了,flush()刷新流后,此流还可以继续使用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2