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才能在文件中看到写入.这是为什么呢?

解决方案 »

  1.   

    BufferedWriter 的 write 会自动刷新缓冲区
    而BufferedOutputStream 不会自动刷新缓冲区 需要添加flush
      

  2.   

    刷新此流。如果此流已保存缓冲区中各种   write()   方法的任何字符,则立即将它们写入预期目标。然后,如果该目标是另一个字符或字节流,则将其刷新。因此,一次   flush()   调用将刷新   Writer   和   OutputStream   链中的所有缓冲区。