替换文本文件中的文本c#

时间:2014-11-18 11:14:00

标签: c# .net

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

  1. 我不想为文件指定新名称
  2. 我不希望文本变成一个长字符串,当我使用File.ReadAllText时会发生这种情况,因为它存储为一个字符串而且松散的回车等......
  3. 另外,我想我会遇到使用StreamReader / StreamWriter的问题,因为你无法读取和写入同一个文件?

    由于

2 个答案:

答案 0 :(得分:7)

您可以为阅读撰写打开一个流:

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);

答案 1 :(得分:0)

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

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

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