已知txt文件路径filepath,该文件每一行数据格式为:端口=5683;要求写一个方法,包含key和data两个数据,当 调用此方法时,查找等号前与key相等的行,再将data赋值该行给等号后的数据
时间: 2024-10-22 07:07:05 浏览: 32
要实现这个功能,你可以使用 C# 的 `StreamReader` 和 `Regex` 类来读取文件并匹配行。首先,定义一个方法,接受文件路径(filepath)、键(key)和值(data)。然后,遍历文件中的每一行,找到匹配的键后赋值。以下是一个示例代码:
```csharp
using System;
using System.IO;
using System.Text.RegularExpressions;
public static void SetValueInFile(string filepath, string key, string data)
{
// 创建 StreamReader 对象来逐行读取文件
using (var reader = new StreamReader(filepath))
{
string line;
while ((line = reader.ReadLine()) != null) // 遍历文件直到末尾
{
// 使用正则表达式匹配键及其值
Match match = Regex.Match(line, $"{key}=(\\d+);");
if (match.Success) // 如果找到匹配的行
{
int portNumber = int.Parse(match.Groups[1].Value); // 提取等号后的数值
// 将新的数据赋值给等号后的值
line = $"{key}={data};"; // 注意这里直接替换原始数据,如果你希望保留原有格式,可以稍微调整一下
// 写回原文件
File.WriteAllText(filepath, line, System.Text.Encoding.UTF8);
Console.WriteLine($"已将'{key}'的数据更新为 '{data}'");
break; // 找到匹配后停止循环
}
}
}
}
```
在这个例子中,我们假设数据总是数字格式,如果实际数据类型不同,请相应地更改 `int.Parse` 的部分。
阅读全文