【问题标题】:Replace Text in a TextFile c#替换文本文件中的文本 c#
【发布时间】:2014-11-18 11:14:00
【问题描述】:

替换文本文件中的文本的最佳方法是什么?

  1. 我不想给文件一个新名称
  2. 我不希望文本变成一个长字符串,当我使用 File.ReadAllText 时会发生这种情况,因为这是作为字符串存储的,我会丢失回车等...

另外,我想我在使用 StreamReader/StreamWriter 时会遇到问题,因为您无法读取和写入同一个文件?

谢谢

【问题讨论】:

  • "...我丢失了回车..."。嗯……不,你没有。
  • 你说得对,这是我从其他地方得到的源导出,其他东西在源头损坏了它并且没有回车!谢谢

标签: c# .net


【解决方案1】:

您可以通过为阅读写作打开的流来做到这一点:

FileStream fileStream = new FileStream(@"c:\myFile.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
var streamWriter = new StreamWriter(fileStream);
var streamReader = new StreamReader(fileStream);

...

fileStream .Close();

但最简单的方法仍然是读取所有文件,编辑文本并将其写回文件:

var text = File.ReadAllText(@"c:\myFile.txt");

...

File.WriteAllText(@"c:\myFile.tx", text);

【讨论】:

    【解决方案2】:

    根据您的文件格式,您还可以逐行读取文件(使用 File.ReadLines)并对每一行执行文本替换。

    对于基于流的变体,您还可以参考此答案,如果您的文件很大,这是首选方式。

    How to read a large (1 GB) txt file in .NET?

    【讨论】:

      猜你喜欢
      • 2021-04-04
      • 1970-01-01
      • 2014-02-07
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      相关资源
      最近更新 更多