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

时间:2010-01-04 19:30:39

标签: c#

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

兰迪

3 个答案:

答案 0 :(得分:18)

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

随时强制它刷新到磁盘

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

答案 1 :(得分:1)

Stream由StreamWriter.Flush撰写。

答案 2 :(得分:0)

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

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

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