0

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

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'。

IE 如果我的文件以前包含:

1
2
3

它现在将包含

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

2 回答 2

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

File.AppendAllText(filePath , "content");

试试这个方法

编辑:

您的代码在我的机器上运行良好,请检查您的函数是否没有被一遍又一遍或循环调用

于 2013-03-13T05:40:31.017 回答
1

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

using (StreamWriter w = File.AppendText("filename"))
{
  w.WriteLine("something to append");
}
于 2013-03-13T05:44:33.810 回答