到目前为止我的代码StreamReader reading = File.OpenText("test.txt");string str;while ((str = reading.ReadLine())!=null){ if (str.Contains("some text")) { StreamWriter write = new StreamWriter("test.txt"); }}我知道如何查找文本,但是我不知道如何用自己的文本替换文件中的文本。
3 回答
绝地无双
TA贡献1946条经验 获得超4个赞
您需要将读取的所有行都写入输出文件,即使您不进行更改也是如此。
就像是:
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。)
- 3 回答
- 0 关注
- 1218 浏览
添加回答
举报
0/150
提交
取消