猿问

如何使用C#查找和替换文件中的文本

到目前为止我的代码


StreamReader reading = File.OpenText("test.txt");

string str;

while ((str = reading.ReadLine())!=null)

{

      if (str.Contains("some text"))

      {

          StreamWriter write = new StreamWriter("test.txt");

      }

}

我知道如何查找文本,但是我不知道如何用自己的文本替换文件中的文本。


MMMHUHU
浏览 1219回答 3
3回答

绝地无双

您需要将读取的所有行都写入输出文件,即使您不进行更改也是如此。就像是:using (var input = File.OpenText("input.txt"))using (var output = new StreamWriter("output.txt")) {  string line;  while (null != (line = input.ReadLine())) {     // optionally modify line.     output.WriteLine(line);  }}如果要就地执行此操作,那么最简单的方法是使用临时输出文件,最后将输入文件替换为输出。File.Delete("input.txt");File.Move("output.txt", "input.txt");(很难在文本文件的中间执行更新操作,因为考虑到大多数编码都是可变宽度的,因此很难总是用相同的长度来进行替换。)编辑:最好不要使用两次文件操作来替换原始文件File.Replace("input.txt", "output.txt", null)。(请参阅MSDN。)
随时随地看视频慕课网APP
我要回答