对于printwriter对象,flush的用途是什么?

时间:2015-05-01 17:28:50

标签: java io printwriter

我正在寻找理论分析。我的意思是,缓冲系统如何工作以及使用flush提供什么优势?如果可能,请举例说明。

1 个答案:

答案 0 :(得分:8)

当您写入文本文件时,BufferedWriter不会立即将其写入磁盘。相反,它将数据保存在内存中的缓冲区中。

这样做的好处是许多小写将进入缓冲区,然后数据将一次写入磁盘,即。用一个大写,而不是许多小写,这将是低效的。

当缓冲区已满时,BufferedWriter会将数据写入其自身,即。当缓冲区已满时,它将执行与调用flush()相同的操作。

那么什么时候应该手动拨打flush()

  • 当您需要数据在磁盘现在时。如果你有一个程序在写入磁盘的同时从磁盘上的文件读取数据,你可能需要确保所有的数据应该在磁盘上实际< / em>那里。

  • 如果您是通过网络连接进行写作,则可能需要致电flush()以便数据立即通过网络发送。

通常调用flush() 。只需在完成后编写并调用close(),就不需要flush()close()为您刷新缓冲区。