在
BufferedWriter当它填充它的缓存就会刷新已。来自的文档
BufferedWriter.write:
通常,此方法将给定数组中的字符存储到此流的缓冲区中, 并根据需要将缓冲区刷新到基础流 。
(强调我的。)
BufferedWriter基本上,目的是将大量的小写合并为更少的大写,因为通常这样做效率更高(但更难于编写代码)。但是,除了确保在 完成处理后将
其刷新之外,您无需执行任何特殊操作即可使其正常工作,并且调用
close()将这样做并无论如何都刷新/关闭底层编写器。
换句话说,放松-
只需写,写,写和关闭:)通常,
flush您真正需要手动调用的唯一时间是真正需要将数据现在存储在磁盘上。(例如,如果您有一个永久记录器,则可能要经常刷新它,以使正在阅读日志的人不必等到缓冲区已满就可以看到新的日志条目!)



