在我的应用程序中,我正在使用StreamWriter将数据流式写入文件。在调用Close()方法之前,是否有任何字节被写入文件?如果答案是否定的,那么无论流的大小如何都是正确的吗?
Randy
在我的应用程序中,我正在使用StreamWriter将数据流式写入文件。在调用Close()方法之前,是否有任何字节被写入文件?如果答案是否定的,那么无论流的大小如何都是正确的吗?
Randy
StreamWriter有一个内部缓冲区,一旦该缓冲区满了,它就会被刷新到磁盘。您可以通过调用Flush()
随时强制将其刷新到磁盘。
如果愿意的话,您可以在StreamWriter的构造函数中指定所需的缓冲区大小。
流是由StreamWriter.Flush
编写的。
Flush
会达到这个效果,但在关闭之前流被写入的情况并不仅限于此。请参考马特·格里尔的回答。 - Adam Robinson它取决于所使用的底层流、该流中缓冲区的大小和其他因素。
您可以通过在 StreamWriter 上调用 flush() 强制将写入操作写入底层流。
我假设根据您的问题,您正在使用文件流。 根据我的经验,刷新通常会发生在每个1-4K数据之间,但我不确定确切的点在哪里。