[英]Text file not updating right away when using TextWriter
我正在使用TextWriter
将每100ms的串行数据写入一个文本文件。 但是文本文件不会立即更新。 有时,在.txt文件中显示书面文本需要几秒钟,有时还需要一分钟。 我该如何解决?
TextWriter tw;
tw = new StreamWriter(new FileStream(path + "\\" + currentSubdirName + "\\" + currentFileName, FileMode.CreateNew));
tw.Write(text);
仅当相关缓冲区已满时才写入数据。 您可以使用tw.Flush()
强制刷新,这会将(部分)数据从TextWriter
推送到FileStream
。
请注意,这可能会对性能产生重大影响。 缓存和缓冲非常重要,因为磁盘要比RAM慢得多(RAM比CPU要慢得多)。 确保成本物有所值,无论如何都应考虑仅偶尔冲洗一次。
您需要调用flush以便将所有缓冲数据立即写入文件
TextWriter tw = new StreamWriter(new FileStream(path + "\\" + currentSubdirName + "\\" + currentFileName, FileMode.CreateNew));
tw.Write(text);
tw.Flush();
tw.Dispose();
或者,您也可以在using语句中使用TextWriter,该语句将刷新TextWriter.Dispose上所有缓冲的数据,这样就无需处理Writer.Dispose
using (TextWriter tw = new StreamWriter(new FileStream(path + "\\" + currentSubdirName + "\\" + currentFileName, FileMode.CreateNew));)
{
tw.Write("test");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.