已知txt文件路径filepath,要求写一个方法,包含key和data两个数据,当 调用此方法时,查包含key字段的行,再将该行的数据替换为data,不改变其它行的数据
时间: 2024-10-24 21:04:03 浏览: 6
在 C# 中,你可以使用 `StreamReader` 和 `StreamWriter` 来读取文本文件,然后根据指定的键值(key)定位到相应的行并进行修改。这里是一个简单的示例方法,假设文本文件是以逗号分隔值(CSV)的形式存储,每一行都有 key 和 data:
```csharp
using System;
using System.IO;
public class FileHandler
{
public void UpdateFile(string filepath, string key, string newData)
{
// 创建 StreamReader 用于读取文件
using (var reader = new StreamReader(filepath))
{
// 创建 StreamWriter 用于更新文件
using (var writer = new StreamWriter(filepath))
{
string line;
bool foundKey = false; // 标记是否找到 key
while ((line = reader.ReadLine()) != null)
{
// 检查当前行是否有 key
if (line.Contains(key))
{
// 替换 data
line = $"{key},{newData}";
foundKey = true; // 如果找到,标记为已处理
}
// 写入新行,如果没有找到 key,则保持原样
writer.WriteLine(line);
}
// 如果没有找到 key,但在最后一行添加新的行
if (!foundKey)
{
writer.WriteLine($"{key},{newData}");
}
}
}
}
}
```
在这个例子中,方法 `UpdateFile` 接收三个参数:原始文件路径、要查找的关键字以及新的数据。如果找到匹配的行,它会将数据替换;如果没有找到,会在文件末尾追加一行。
阅读全文