如何将新数字写入文本文件的末尾

时间:2013-03-13 05:32:24

标签: c#

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

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);

如果您对如何编写代码有任何其他建议或为什么它不起作用我会很感激。我已经尝试过这个代码的许多不同变体,但同样的问题仍然发生在输出与我的文件具有相同数据的地方,但随后添加了许多'4',我只想添加一个。

即 如果我的文件先前包含:

1
2
3

它现在将包含

1
2
3
4
4
4
4
4
4
4
4
...etc

2 个答案:

答案 0 :(得分:1)

String filePath = @"C:\Mental.txt";

File.AppendAllText(filePath , "content");

尝试这种方法

编辑:

  

您的代码在我的机器上正常运行,请您检查一下   函数不是一遍又一遍地调用或循环调用

答案 1 :(得分:1)

在追加之前,您无需读取整个文件。尝试这样的事情:

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