我正在使用流编写器像这样写入文件流
using(StreamWriter writer = File.AppendText('MyFile.csv'))
{
writer.WriteLine("Header1,Header2")
//Write multiple lines based on some logic
DoSomeOtherThings(writer)
writer.Flush();
}
如果我的应用程序在写入过程中出错,我根本不想写入文件。为此,我想我不必冲洗到最后。但是,即使出现错误,正在写入的任何数据也会保存到我的文件中。
有没有办法忽略 StreamWriter 的缓冲区,这样它就不会将数据保存到文件中,除非它到达逻辑的末尾?
Flush 在 StreamWriter 的 Dispose 方法中被调用。 例如,请参阅 Stream.Dispose 是否总是调用 Stream.Close(和 Stream.Flush)。 即使使用"using"构造时发生错误,也会调用 Dispose。
我没有尝试过这个,但看起来 StreamWriter 类上有一个自动刷新属性。您可以在创建编写器后立即将其设置为 false,它可能会执行您想要的操作。