读书人

为什么有的输出流需要flush,有的却不需

发布时间: 2012-03-20 14:01:11 作者: rapoo

为什么有的输出流需要flush,有的却不需要?
BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));
bw.write("HelloWorld");
这个流不需要flush和close,就能把HelloWorld写入到文件中
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("test.txt"));
byte[] bt = {1,2,3,4,5,6};
bos.write(bt);
这个流却必须加上flush才能在文件中看到写入.

这是为什么呢?

[解决办法]
BufferedWriter 的 write 会自动刷新缓冲区
而BufferedOutputStream 不会自动刷新缓冲区 需要添加flush
[解决办法]
自动帮你flus了啊.
[解决办法]
第一个自动刷新 第二个你必须自己刷新或者流中的数据放满了才会刷新

读书人网 >J2SE开发

热点推荐