繁体   English   中英

如何忽略流作家的缓冲区

[英]How can you disregard the buffer of a streamwriter

我正在使用streamwriter写入文件流,像这样

using(StreamWriter writer = File.AppendText('MyFile.csv'))
{
    writer.WriteLine("Header1,Header2")

    //Write multiple lines based on some logic
    DoSomeOtherThings(writer)

    writer.Flush();
}

如果我的应用程序在编写过程中出错,那么我根本就不想写该文件。 为此,我认为我将不必冲洗到最后。 但是,即使出现错误,正在写入的任何数据也会保存到我的文件中。

有没有一种方法可以忽略StreamWriter的缓冲区,因此除非到达逻辑末尾,否则它不会将数据保存到文件中?

在StreamWriter的Dispose方法中调用Flush。 例如,请参阅是否Stream.Dispose始终调用Stream.Close(和Stream.Flush) 即使使用“ using”构造时发生错误,也会调用Dispose。

我没有尝试过,但看起来StreamWriter类上有一个AutoFlush属性。 创建编写器后,您可能可以立即将其设置为false,并且它可以执行您想要的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM