Gup*_*ill 5 java io printwriter
我正在寻找理论分析.我的意思是,缓冲系统如何工作以及使用flush提供什么优势?如果可能的话,请举例说明.
当您写入文本文件时,BufferedWriter不会立即将其写入磁盘.相反,它将数据保存在内存中的缓冲区中.
这样做的好处是许多小写将进入缓冲区,然后数据将一次写入磁盘,即.用一个大写,而不是许多小写,这将是低效的.
当缓冲区已满时,BufferedWriter将自己写出数据,即.它会像flush()缓冲区已满时调用一样.
那么什么时候应该flush()手动打电话?
当您需要数据现在在磁盘上时.如果你有一个程序在写入磁盘的同时从磁盘上的文件中读取数据,你可能需要确保所有应该在磁盘上的数据实际存在.
如果您是通过网络连接进行写入,则可能需要调用flush()以便立即通过网络发送数据.
通常没有必要打电话flush().只要写并调用close()完成后,并没有必要flush()为close()刷新缓冲区为您服务.