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我当然会的,但是我正在尝试学习异步编程,我不想一次做太多的事情。