程序每次在文件C#中输入新字符串时,都要写一行新代码

时间:2018-11-29 11:59:09

标签: c#

Console.WriteLine("What name would you like to be known as?");
string usernameforscore = Console.ReadLine();
string path = *filepath*;
File.WriteAllText(path, (usernameforscore + " " + classicscore + Environment.NewLine));

因此,此代码是我正在为一个项目制作的游戏的一部分,当游戏失败时,在游戏结束时,我希望它既保存一个人选择的用户名又保存他们的得分(变量保存在其他地方)。我已经把它保存到文件中了,但是每次有人输入一组新数据时,文件就会被覆盖,并且只显示新数据。

我希望它写一个带有名称和分数的行,然后在下次运行代码时,它将在下一行显示新名称和分数,从而创建一个高分列表。

我正在使用Visual Studio和C#上的控制台程序

抱歉,如果这是重复的,我自己似乎找不到修复程序。

2 个答案:

答案 0 :(得分:1)

有一个方法AppendAllText()而不是WriteAllText(),如下所示:

File.AppendAllText(@"c:\Path\filename.txt", "the text to append" + Environment.NewLine);

答案 1 :(得分:-1)

您可以使用以下方法UpdateTextFile将数据保存到文本文件。

public static void UpdateTextFile(string fileName, string content, bool doNotOverwrite = true, bool writeNewLine = true)
{
    StreamWriter file = null;
    using (file = new System.IO.StreamWriter(@"D:\" + fileName + ".txt", doNotOverwrite))
    {
       if (writeNewLine)
       {
          file.WriteLine(content);
       }
       else 
          file.Write(content);

       file.Close();
    }
}

调用方法的示例:

UpdateTextFile("FileName", "file-content", true, false);

希望有帮助。