2010-05-25 74 views
0

我的下面的代碼創建一個txt文件並將某些內容寫入該文件。但是當我多次運行腳本時,我需要在前面的行之後寫一行新行。代碼:如何在C#中的前一行之後編寫一個文本文件?

string filePath = "D:\\DOT_NET\\C#\\abc.txt"; 
FileInfo t = new FileInfo(filePath); 
StreamWriter Tex = t.CreateText(); 
Tex.WriteLine("Hi freinds"); 
Tex.WriteLine("csharpfriends is the new url for c-sharp"); 
Tex.Write(Tex.NewLine); 
Tex.Close(); 

abc.txt文件電流輸出:

Hi friends 
csharpfriends is the new url for c-sharp 

但我需要的輸出,如果我運行該腳本幾次是這樣的:

Hi friends 
csharpfriends is the new url for c-sharp 

Hi friends 
csharpfriends is the new url for c-sharp 

Hi friends 
csharpfriends is the new url for c-sharp 

我該怎麼辦那?請幫忙。

+2

首先,我認爲你應該把StreamWriter聲明放在一個using塊中。 – 2010-05-25 12:39:49

回答

6

StreamWriter有一個構造函數,它允許您附加文本而不是隻寫入文件。構造函數是

new StreamWriter(string filepath, bool append) 

如果將該布爾值設置爲「true」,則所有的寫入操作都將在文檔的末尾。在你的榜樣......

StreamWriter Tex = new StreamWriter(@"D:\DOT_NET\C#\abc.txt", true); 
+0

謝謝你的回答,但是如果你想詳細說明你的ans.pls指南,我將如何在我提到的代碼中添加約束符。 謝謝 riad – riad 2010-05-25 12:41:33

+0

@riad將你當前的StreamWriter Tex聲明替換爲我在下面寫道。你不必改變任何東西,因爲你仍然可以正確關閉它。 – 2010-05-25 12:45:18

+1

有什麼要詳細說明的? @ccomet的回答中究竟* *的含義不明確? – 2010-05-25 12:46:06

2
using (StreamWriter sw = File.AppendText(path)) 
{ 
    sw.WriteLine("..."); 
} 
0

試試這個: System.IO.File.WriteAllText(@ 「file_location」,System.IO.File.ReadAllText(@ 「file_location」)+統環境.NewLine +「The_new_text」); 這段代碼會改變你想要的var的行。

相關問題