file.Flush();
MSDN说是将缓存的内容写入文件。
MSDN说是将缓存的内容写入文件。
一定要加,各种实验,包括多线程操作同一个文件等等,都证明了,这东西少不了。
Flush是将缓冲区的内容写入文件,并清空。缓冲区是4k的内容,够4k了,就会自动写入文件,不够的话就需要flush一下,如果不flush的话,文件的最后有可能会少一些内容
flush()的作用是强制将缓冲区的数据写入磁盘,只是为了确保数据尽快被写入,但是其实如果小量数据就用flush(),那么硬盘写入的机械操作时间是相对比较长的,
如果不调用flush(),缓冲区达到一定的数据量就会自动写入磁盘。
在关闭文件的时候也会把缓冲区的数据(如果有)强制写入磁盘。
如果不是多线程写同一个文件,可以不用flush(),
最后结束前记得close就可以,当然也可以最后flush一次,再close
经测试,不论最后一起close()还是,每次写完都close()耗时都很少,都不够1ms,只要加上flush()耗时立即提高了数倍某些时候会提高到100ms以上(6k),如果有缓存区,那么缓存区的大小能调整么?缓存区是达到缓存数量后就自动写入文件么?