2013-05-03 91 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 + "]"); 
} 
相關問題