格式化文本文件,完成解析后如何更新文件?

我如何打开文件,对文件执行一些正则表达式,然后保存文件?

我知道我可以打开一个文件,逐行读取,但是如何更新文件的实际内容然后保存文件?

无论文件大小如何,以下方法都可以工作,如果操作在完成之前失败,也不会破坏原始文件:

string inputFile = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.MyDocuments), "temp.txt"); string outputFile = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.MyDocuments), "temp2.txt"); using (StreamReader input = File.OpenText(inputFile)) using (Stream output = File.OpenWrite(outputFile)) using (StreamWriter writer = new StreamWriter(output)) { while (!input.EndOfStream) { // read line string line = input.ReadLine(); // process line in some way // write the file to temp file writer.WriteLine(line); } } File.Delete(inputFile); // delete original file File.Move(outputFile, inputFile); // rename temp file to original file name 
 string[] lines = File.ReadAllLines(path); string[] transformedLines = lines.Select(s => Transform(s)).ToArray(); File.WriteAllLines(path, transformedLines); 

在这里,例如, Transform

 public static string Transform(string s) { return s.Substring(0, 1) + Char.ToUpper(s[1]) + s.Substring(2); } 

打开文件进行读取。 将文件的所有内容读入内存。 关闭文件。 打开文件进行写入。 将所有内容写入文件。 关闭文件。

或者,如果文件非常大:

打开fileA进行读取。 打开一个新文件(fileB)进行写入。 处理fileA的每一行并保存到fileB。 关闭fileA。 关闭fileB。 删除fileA。 将fileB重命名为fileA。

阅读完毕后关闭文件
重新打开文件以进行写入
回写新内容