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

本文关键字:文本 文件 替换 | 更新日期: 2023-09-27 18:30:59

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

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

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

谢谢

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

您可以使用打开用于读取写入的流来执行此操作:

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

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

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

如何在 .NET 中读取大型 (1 GB) txt 文件?