C#StreamWriter - 什么时候物理写入文件流?

Ran*_*der 9 c#

在我的应用程序中,我使用StreamWriter将数据流式传输到文件.在调用Close()方法之前,是否有任何字节实际写入文件?如果答案是否定的,无论流有多大,这都是正确的吗?

兰迪

Mat*_*eer 18

StreamWriter有一个内部缓冲区,一旦该缓冲区已满,它将被刷新到磁盘.您可以随时通过调用强制它刷新到磁盘Flush()

如果您愿意,可以在StreamWriters的构造函数中指定所需的缓冲区大小.

  • Flush()不保证实际写入磁盘 - 它只是将CLR缓冲区刷新到OS缓冲区.请参阅[此问题](http://stackoverflow.com/questions/383324/how-to-ensure-all-data-has-been-physically-written-to-disk). (3认同)