若是你要寫入的內容不是不少,
能夠使用File.WriteAllText方法來一次將內容所有寫如文件。
若是你要將一個字符串的內容寫入文件,能夠用File.WriteAllText(FilePath) 或指定編碼方式 File.WriteAllText(FilePath, Encoding)方法。
string str1 = "Good Morning!";
File.WriteAllText(@"c:\temp\test\ascii.txt", str1);
// 也能夠指定編碼方式
File.WriteAllText(@"c:\temp\test\ascii-2.txt", str1, Encoding.ASCII);
若是你有一個字符串數組,你要將每一個字符串元素都寫入文件中,能夠用File.WriteAllLines方法:
string[] strs = { "Good Morning!", "Good Afternoon!" };
File.WriteAllLines(@"c:\temp\ascii.txt", strs);
// 也能夠指定編碼方式
File.WriteAllLines(@"c:\temp\ascii-2.txt", strs, Encoding.ASCII);
使用File.WriteAllText或File.WriteAllLines方法時,若是指定的文件路徑不存在,會建立一個新文件;若是文件已經存在,則會覆蓋原文件。
當要寫入的內容比較多時,
一樣也要使用流(Stream)的方式寫入。.Net封裝的類是StreamWriter。
初始化StreamWriter類一樣有不少方式:
// 若是文件不存在,建立文件; 若是存在,覆蓋文件
StreamWriter sw1 = new StreamWriter(@"c:\temp\utf-8.txt");
// 也能夠指定編碼方式
// true 是 append text, false 爲覆蓋原文件
StreamWriter sw2 = new StreamWriter(@"c:\temp\utf-8.txt", true, Encoding.UTF8);
// FileMode.CreateNew: 若是文件不存在,建立文件;若是文件已經存在,拋出異常
FileStream fs = new FileStream(@"C:\temp\utf-8.txt", FileMode.CreateNew, FileAccess.Write, FileShare.Read);
// UTF-8 爲默認編碼
StreamWriter sw3 = new StreamWriter(fs);
StreamWriter sw4 = new StreamWriter(fs, Encoding.UTF8);
// 若是文件不存在,建立文件; 若是存在,覆蓋文件
FileInfo myFile = new FileInfo(@"C:\temp\utf-8.txt");
StreamWriter sw5 = myFile.CreateText();
初始化完成後,能夠用StreamWriter對象一次寫入一行,一個字符,一個字符數組,甚至一個字符數組的一部分。
// 寫一個字符
sw.Write('a');
// 寫一個字符數組
char[] charArray = new char[100];
// initialize these characters
sw.Write(charArray);
// 寫一個字符數組的一部分
sw.Write(charArray, 10, 15);
一樣,StreamWriter對象使用完後,不要忘記關閉。
sw.Close();
最後來看一個完整的使用StreamWriter一次寫入一行的例子:
FileInfo myFile = new FileInfo(@"C:\temp\utf-8.txt");
StreamWriter sw = myFile.CreateText();
string[] strs = { "早上好", "下午好" };
foreach (var s in strs)
{
sw.WriteLine(s);
}
sw.Close();