2011-04-01 44 views
21

問候,我似乎無法弄清楚如何在不覆蓋文件的情況下將數據寫入文件。我知道我可以使用File.appendtext,但我不確定如何將其插入到我的語法中。這裏是我的代碼:如何在C#中將數據寫入文本文件而不覆蓋當前數據

TextWriter tsw = new StreamWriter(@"C:\Hello.txt"); 

//Writing text to the file. 
tsw.WriteLine("Hello"); 


//Close the file. 
tsw.Close(); 

我希望它每次運行程序時寫你好,不覆蓋以前的文本文件。感謝您閱讀本文。

+0

這裏的@是什麼意思?謝謝 – user2420472 2014-01-31 16:46:12

回答

5

你必須爲new StreamWriter(filename, true),使其追加到文件,而不是覆蓋打開。

10

更改您的構造函數以傳遞true作爲第二個參數。

TextWriter tsw = new StreamWriter(@"C:\Hello.txt",true); 
0
using (StreamWriter writer = File.AppendText(LoggingPath)) 
{ 
    writer.WriteLine("Text"); 
} 
2

最好的事情是

File.AppendAllText("c:\\file.txt","Your Text"); 
1

查找到文件級。

您可以創建

StreamWriter sw = File.Create(....) 

一個StreamWriter您可以打開與

File.Open(...) 

現有的文件,您可以輕鬆地添加文本與

File.AppendAllText(...); 
2

下面是一個代碼塊,它將值寫入日誌文件。如果文件不存在,它會創建它,否則它只會附加到現有文件。您需要添加「使用System.IO;」在代碼的頂部,如果它不在那裏。

string strLogText = "Some details you want to log."; 

// Create a writer and open the file: 
StreamWriter log; 

if (!File.Exists("logfile.txt")) 
{ 
    log = new StreamWriter("logfile.txt"); 
} 
else 
{ 
    log = File.AppendText("logfile.txt"); 
} 

// Write to the file: 
log.WriteLine(DateTime.Now); 
log.WriteLine(strLogText); 
log.WriteLine(); 

// Close the stream: 
log.Close(); 
相關問題