你怎么能无视流写器的缓冲区



我正在使用流编写器像这样写入文件流

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,它可能会执行您想要的操作。

相关内容

  • 没有找到相关文章

最新更新