首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为什么有的输出流需要flush,有的却不需要?解决思路

2012-03-20 
为什么有的输出流需要flush,有的却不需要?BufferedWriter bw new BufferedWriter(new FileWriter(test.

为什么有的输出流需要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了啊.
[解决办法]
第一个自动刷新 第二个你必须自己刷新或者流中的数据放满了才会刷新

热点排行