日期:2014-05-20  浏览次数:20816 次

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