如何立即将内容写入文件?

6

我想要记录日志,我使用TextWriter/StreamWriter将消息写入我的日志文件。在写完消息后,我调用了TextWriter.Flush(),但是我的消息仍然不能立即显示出来。只有当我调用Close时,它才会出现,但我不想一直重新打开和关闭文件,只是为了立即查看消息。

3个回答

6

您可以尝试自行构建FileStream并将FileOptions.WriteThrough传递给构造函数。然后使用该FileStream构建StreamWriter。WriteThrough选项绕过缓存。


这个方法是唯一一个百分之百有效的,谢谢。 - esac

4
你也可以将 StreamWriter.AutoFlush 属性设置为 true。这样,写入 StreamWriter 的任何内容都会立即写入磁盘(在每次调用 Write 后)。
根据 AutoFlush 的MSDN 文档
获取或设置一个值,该值指示 StreamWriter 是否会在每次调用 StreamWriter.Write 之后将其缓冲区刷新到基础流中。
Marc

0

确保使用读共享访问打开日志文件,允许所有后续的读取操作,但拒绝写入访问。这样,您就可以从另一个程序监视日志。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接