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

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

兰迪

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

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

Stream由StreamWriter.Flush编写。

它取决于正在使用的基础流,该流中缓冲区的大小以及其他因素。

您可以通过在StreamWriter上调用flush()来强制写入基础流。

我假设您正在使用下面的文件流。 根据我的经验,刷新通常发生在每1-4K数据之间,但我不确定具体是什么。