我正在寻找理论分析。我的意思是,缓冲系统如何工作以及使用flush提供什么优势?如果可能,请举例说明。
答案 0 :(得分:8)
当您写入文本文件时,BufferedWriter
不会立即将其写入磁盘。相反,它将数据保存在内存中的缓冲区中。
这样做的好处是许多小写将进入缓冲区,然后数据将一次写入磁盘,即。用一个大写,而不是许多小写,这将是低效的。
当缓冲区已满时,BufferedWriter
会将数据写入其自身,即。当缓冲区已满时,它将执行与调用flush()
相同的操作。
那么什么时候应该手动拨打flush()
?
当您需要数据在磁盘现在时。如果你有一个程序在写入磁盘的同时从磁盘上的文件读取数据,你可能需要确保所有的数据应该在磁盘上实际< / em>那里。
如果您是通过网络连接进行写作,则可能需要致电flush()
以便数据立即通过网络发送。
通常调用flush()
。只需在完成后编写并调用close()
,就不需要flush()
为close()
为您刷新缓冲区。