(1) 直接寫入,只能寫一次,因為會覆蓋
string str1 = " welcome , hello , 12345 ";
string str2 = " welcome , hello , 54321 ";
// 將資料寫入,若檔案已存在則會被覆蓋
System.IO.File.WriteAllText("hello.txt", str1);
// 寫入完畢,立即關閉,只能保留最後一次的寫入資料
System.IO.File.WriteAllText("hello.txt", str2);
MessageBox.Show("OK");
結果
最後寫入結果只保留最後一次的資料
(2) 可以寫入多行但是還是有覆蓋的情形,使用 StreamWriter
string str1 = " welcome , hello , 12345 ";
string str2 = " welcome , hello , 54321 ";
// using System.IO;
// 資料存在則會覆蓋
using (StreamWriter outputFile = new StreamWriter("WriteText1.txt"))
{
outputFile.WriteLine(str1);
outputFile.WriteLine(str2);
// 寫入完畢會自動關閉
WriteToFile( outputFile, "1233456789");
}
MessageBox.Show("OK");
結果:可以寫入多行,但是下一次時,資料還是會被清除再來一次
(3) 可以寫入多行,可以附加資料,使用 StreamWriter,僅在宣告時有小細節,注意紅字部分
string str1 = " welcome , hello , 12345 ";
string str2 = " welcome , hello , 54321 ";
// using System.IO;
// 資料存在則會附加
using (StreamWriter outputFile = new StreamWriter("WriteText2.txt", true))
{
outputFile.WriteLine(str1);
outputFile.WriteLine(str2);
// 寫入完畢會自動關閉
WriteToFile(outputFile, "ABCDEFGHIJK");
}
MessageBox.Show("OK");
共用
private void WriteToFile( StreamWriter a, string str1)
{
a.WriteLine(str1);
}