2013-03-13 92 views
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',我只希望添加一个。

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

1 
2 
3 

它现在将包含

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

这段代码似乎没有任何根本性的错误。除了你在这里还有什么别的吗? – 2013-03-13 05:39:38

+0

是的,除此之外还有很多,正如Mayur指出的,下面是循环。我非常关注这个问题,因为我忘记了代码被调用的问题以及它经常更新的事实,这将解释被添加的数量的增加。 – Svader 2013-03-13 14:24:50

回答

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

File.AppendAllText(filePath , "content"); 

试试这个方法

编辑:

你的代码运行在我的机器上很好,可以请你检查你的 功能是不是叫一遍又一遍的或循环

+0

谢谢!我多么愚蠢。是的,我完全忽视了这个问题。使用XNA和我最初只是为了测试的目的而加入游戏更新方法,所以我可以让代码工作,因为它还没有被使用。我很高兴没有错。正在失去理智。 – Svader 2013-03-13 14:21:42

1

你不需要追加到它之前读取整个文件。尝试这样的:

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

是的,我最初是从这个开始的,但显然变得失控,试图获得不同的结果。谢谢。 – Svader 2013-03-13 14:26:06

相关问题