C# 如何正确更新文本文件中的信息?
我想在文本文件中保存一些数据,如下所示:C# 如何正确更新文本文件中的信息?,c#,io,C#,Io,我想在文本文件中保存一些数据,如下所示: Name = Frank Age = 28 Registered = False 现在我想读取/更新每行中包含的数据。例如,我需要将名称更改为“Tim”,我必须找到行名称,然后替换“=”后面的字符串 我不知道如何正确地解决这个问题,我在谷歌上找不到任何让我满意的东西 我试图用text.Replace()方法更新它,但它只可能找到它实际找到的字符串 我希望从行中读取正确的数据,并在需要时替换它尝试将文件保存为Json格式。像 { "Name" :
Name = Frank
Age = 28
Registered = False
现在我想读取/更新每行中包含的数据。例如,我需要将名称更改为“Tim”,我必须找到行名称,然后替换“=”后面的字符串
我不知道如何正确地解决这个问题,我在谷歌上找不到任何让我满意的东西
我试图用text.Replace()方法更新它,但它只可能找到它实际找到的字符串
我希望从行中读取正确的数据,并在需要时替换它尝试将文件保存为Json格式。像
{
"Name" : "Frank"
"Age" : 28
"Registered" : False
}
然后读取文件,使用Newtonsoft json将其反序列化为object
然后更新属性(名称),再次将其序列化为字符串,然后再次写入同一文件。
在这种方法中,出错的可能性非常小 有多种方法可以做到这一点。我将贡献其中一个(我认为更容易理解) 步骤1:将整个文件读入字符串 步骤2:将其转换为字符串 步骤3:使用简单的方法(如拆分和联接)处理字符串 步骤4:用处理过的字符串覆盖上一个文件 代码如下:
if (File.Exists(your_file_path)){
string yourfile = File.ReadAllText(your_file_path);
// Now the file is a simple string that you can manipulate using
// string split functions.
// For Example:
// break by lines
string[] lines = yourfile.Split('\n');
foreach (string line in lines){
if (line.Substring(0,4) == "Name"){
// replace the necessary line
line = "Name = Tim";
break;
}
}
// Join the array again
yourfile = lines.Join("\n", lines);
File.WriteAllText(your_file_path, yourfile);
}
这不是JSON格式。使用冒号(:)而不是等号(=)。我想我需要先了解一下,然后才能测试它,但这听起来很有希望,谢谢!这个答案似乎简单得多,有时我会因为忘记了像拆分这样简单的东西而觉得愚蠢。。。。谢谢你教我,这正是我想要的@克莉莉亚,太好了。但我仍然建议您在有时间的时候学习JSON。这是做你想做的事情的行业标准。@Nirva我当然会的,但是我正在尝试学习异步编程,我不想一次做太多的事情。