C# 如何在文本文件末尾写入新数字

C# 如何在文本文件末尾写入新数字,c#,C#,我尝试在文本文件的末尾添加一个数字,而不覆盖该文件。目前,我尝试从文件中读取数据,将数据存储到字符串中,然后添加到列表中,在列表中添加新的整数,然后写入文件 M = @"C:\Mental.txt"; StreamReader content = new StreamReader(M, Encoding.Default); string m = content.ReadToEnd(); List<int> num = new List<int>(m.Sp

我尝试在文本文件的末尾添加一个数字,而不覆盖该文件。目前,我尝试从文件中读取数据,将数据存储到字符串中,然后添加到列表中,在列表中添加新的整数,然后写入文件

M = @"C:\Mental.txt";      
StreamReader content = new StreamReader(M, Encoding.Default);
string m = content.ReadToEnd();
List<int> num = 
  new List<int>(m.Split((string[])null, StringSplitOptions.RemoveEmptyEntries)
  .Select(int.Parse));
num.Add(4);
content.Close();
content.Dispose();

var s = num.Select(i => i.ToString()).ToArray();
File.WriteAllLines(M,s);
它现在将包含

1
2
3
4
4
4
4
4
4
4
4
...etc
试试这个方法

编辑:

你的代码在我的机器上运行良好,你能检查一下你的 函数不会反复调用或在循环中调用


附加到文件之前,不需要读取整个文件。试着这样做:

using (StreamWriter w = File.AppendText("filename"))
{
  w.WriteLine("something to append");
}

这段代码似乎没有任何根本性的错误。除了你这里的东西,还有其他的东西吗?是的,不仅仅是这个,正如Mayur所指出的,下面是循环。我太专注于这个问题了,我忘了代码是从哪里调用的,它经常更新,这可以解释为什么添加的数量会激增。谢谢!我真蠢。是的,我完全忽略了这一点。使用XNA和我最初只是为了测试目的而加入到游戏更新方法中,这样我就可以让代码正常工作,因为它还没有被使用。我很高兴它没有什么问题。我当时正失去理智。是的,我最初是从这个开始的,但显然是失控了,试图得到不同的结果。非常感谢。
String filePath = @"C:\Mental.txt";

File.AppendAllText(filePath , "content");
using (StreamWriter w = File.AppendText("filename"))
{
  w.WriteLine("something to append");
}