添加到文本文件而不删除

时间:2013-05-03 20:12:26

标签: c# text streamwriter

我需要在一行中添加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 ...

......但是它并没有那么成功,互联网也没有特别的帮助,希望这可以帮助。

3 个答案:

答案 0 :(得分:8)

我会亲自使用File.AppendAllText ...这样你只需指定要编写的文本,该方法将打开文件,附加文本,然后关闭文件。

如果您确实想要使用该作者,可以使用File.AppendText

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

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

答案 1 :(得分:1)

StreamWriter has a constructor接受一个布尔值,表示您要附加到当前文本而不是覆盖它

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

答案 2 :(得分:1)

您应该使用File.AppendText

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