2013-05-03 84 views
2

我需要将4个可变数字添加到一行,但使用当前代码它只是替换数字,从而使其毫无意义。添加到文本文件而不删除

using (StreamWriter writer = new StreamWriter("build.txt")) 
{ 
    writer.Write(" " + layer + " " + x + " " + y + " " + block); 
    Console.WriteLine("[" + layer + "," + x + "," + y + "," + block + "]");     
} 

所以我需要它来写......

l x y b l x y b l x y b l x y b ... 

...但它并没有这样的工作了,和上网是不是特别有帮助,希望在这里可以提供帮助。

回答

8

我个人会使用File.AppendAllText这种方式您可以指定要写入的文本,然后该方法将打开文件,追加文本,然后关闭文件。

如果你真的想虽然使用的作家,你可以使用File.AppendText

using (var writer = File.AppendText("build.txt")) 
{ 
    writer.Write(...); 
} 

或者你可以使用StreamWriter constructor with an append parameter。我肯定会推荐使用File中的方法 - 它们更清晰易读。

+0

是,使用Jon的例。 :) – 2013-05-03 20:16:05

+0

谢谢,但它写在每一个新行,而我想它写在第1行。 – BananaVenom 2013-05-03 20:18:03

+1

@BananaVenom:它不会,如果你只使用'writer.Write'。它不会自动添加新行。您是否使用'WriteLine'? – 2013-05-03 20:19:37

1

的StreamWriter has a constructor接受boolean值,以指示要附加到当前的文本,而不是覆盖它

using (StreamWriter writer = new StreamWriter("build.txt", true)) 
{ 
    ..... 
} 
1

你应该使用File.AppendText此:

using (StreamWriter sw = File.AppendText("build.txt")) 
{ 
    sw.Write(" " + layer + " " + x + " " + y + " " + block); 
    Console.WriteLine("[" + layer + "," + x + "," + y + "," + block + "]"); 
} 
相关问题