替换TextFile中的文本c#

rea*_*tek 3 .net c#

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

  1. 我不想给文件一个新名字
  2. 我不希望文本成为一个长字符串,当我使用File.ReadAllText时会发生这种情况,因为它存储为字符串而我松散回车等...

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

谢谢

Lud*_*ltz 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();
Run Code Online (Sandbox Code Playgroud)

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

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

...

File.WriteAllText(@"c:\myFile.tx", text);
Run Code Online (Sandbox Code Playgroud)