如何使用C#修改TXT文件中匹配指定条件行的特定字段内容
C# 替换TXT文件指定行指定字段解决方案
问题原因
- 仅修改了内存中拆分后的字段数组,没有同步更新到存储所有行的数组中
- 不应该在循环内部直接调用
File.Create操作原文件,该方法会直接清空原有文件内容,仅写入新输入的内容,导致其他行数据丢失
实现逻辑
先将文件所有内容读取到内存完成全量修改,再一次性将所有内容写回原文件,避免频繁IO和覆盖问题。
完整可运行代码
// 读取文件所有行到内存数组 string[] allLines = File.ReadAllLines(@"C:\folder\Game.txt"); for (int i = 0; i < allLines.Length; i++) { // 匹配包含目标邮箱的行 if (allLines[i].Contains("rick@gmail.com")) { string[] fields = allLines[i].Split(' '); // 替换第4个字段(数组索引从0开始) fields[3] = "helmet"; // 拼接回整行,更新到内存的行数组中 allLines[i] = string.Join(" ", fields); } } // 所有修改完成后,一次性将所有行写回原文件 File.WriteAllLines(@"C:\folder\Game.txt", allLines);
注意事项
- 操作前建议先备份原文件,避免逻辑错误导致数据丢失
- 确保程序对目标文件路径有读写权限
- 如果字段之间的分隔符不是单个空格,需要调整
Split方法的参数适配实际分隔规则
内容的提问来源于stack exchange,提问作者Erol
相关产品推荐
相关产品推荐

