flush()java文件处理

Sum*_*hra 5 java file-handling

flush()的确切用法是什么?流和缓冲区有什么区别?为什么我们需要缓冲?

soc*_*pet 12

缓冲的优点是效率.通常一次将4096字节的块写入文件比写入一个字节4096次更快.

缓冲的缺点是你错过了反馈.对句柄的输出可以保留在内存中,直到写入足够的字节以使其值得写入文件句柄.程序的一部分可能会将一些数据写入文件,但程序的不同部分或其他程序在程序的第一部分将数据从内存复制到磁盘之前无法访问该数据.根据数据写入该文件的速度,这可能需要很长时间.

当您调用时flush(),即使缓冲区未满,您也要求操作系统立即将缓冲区中的任何数据写入文件句柄.


Tom*_*Tom 5

数据有时会在实际写入磁盘(在缓冲区中)之前被缓存,刷新会导致缓冲区中的内容写入磁盘。