c#保持文件打开但覆盖内容

标签 c# file overwrite

我有一个定期从我的 C#.Net 应用程序读取输出的第 3 方应用程序。
由于某些限制,我只能将输出写入一个文件,然后由第 3 方应用程序读取。

我每次都需要覆盖同一个文件的内容。
我目前在 C# 中使用

Loop
{
  //do some work
  File.WriteAllText(path,Text);
}

第 3 方应用程序定期检查文件并读取内容。这很好用,但会使 CPU 使用率非常高。用文本编写器替换 File.WriteAllText 解决了高 CPU 使用率的问题,但随后我的文本被附加到文件而不是覆盖文件。

有人能为我指出正确的方向,让我可以在 C# 中保持文件打开并定期覆盖其内容而不会产生太多开销吗?

编辑:我通过选择每 20 次循环迭代而不是每次循环迭代写入文件来修复 CPU 使用率。下面给出的所有答案都有效,但有与关闭文件和重新打开相关的开销。谢谢

最佳答案

使用 File.OpenFileMode Truncate 为您的 TextWriter 创建文件流。

关于c#保持文件打开但覆盖内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5653834/

相关文章:

c# - 如何将 Migradoc PDF Sharp 中的表格移动到新页面

linux - 在 Jenkins 多配置作业中复制文件

java - 数组的 equals 方法实现 - Java

C# Winform 数据网格增删改查

c# - 使用 Entity Framework 恢复和备份

java - java中如何创建文件夹

python - 使用python覆盖谷歌表格中的数据

Python:用更少的变量写一个新列表

c# - IKVM 在 C# 中运行 jar 实际需要什么?

c - fork() - 父进程和子进程访问多个文件