一、StreamWriter簡介
StreamWriter是C#中用來寫入文本文件的對象。它作為TextWriter的派生類,提供了一組可以直接寫入字符串的方法。這些方法可以寫入多種格式的數據,在默認情況下,它們會將數據寫入UTF-8編碼的文本文件。
StreamWriter提供了許多可用於文件寫入的方法,可以自定義一些格式,例如寫入換行符、指定編碼方式、數據長度/精度等等。在許多情況下,StreamWriter可以替代更複雜的文件寫入技術,如XML、JSON等。
二、創建StreamWriter對象
在創建StreamWriter對象之前,需要確定文件存儲路徑和文件名。可以使用相對路徑或絕對路徑創建一個StreamWriter對象,或者可以使用文件名作為參數創建一個StreamWriter對象。
// 使用文件名創建一個StreamWriter對象
StreamWriter writer = new StreamWriter("test.txt");
// 使用絕對路徑創建一個StreamWriter對象
StreamWriter writer2 = new StreamWriter("c:\\temp\\test.txt");
// 使用相對路徑創建一個StreamWriter對象
StreamWriter writer3 = new StreamWriter("myfolder\\test.txt");
上述創建StreamWriter對象的代碼,都默認使用UTF-8格式創建文本文件。如果你需要使用其他編碼格式,可以使用其他寫入方式創建。
三、寫入文本數據
StreamWriter提供了多種可用於寫入文本數據的方法。以下是其中一些方法:
// 寫入字符串
writer.Write("Hello World");
// 寫入字符串並換行
writer.WriteLine("Hello World");
// 寫入一個字符數組
char[] buffer = { 'H', 'e', 'l', 'l', 'o' };
writer.Write(buffer, 0, buffer.Length);
// 寫入一個整數
int num = 1234;
writer.Write(num);
// 將帶格式的字符串寫入文件
string formatString = "{0,-10}{1,-5}{2,-5}{3,-5}{4,-5}";
writer.WriteLine(formatString, "Name", "Math", "Eng", "Phy", "Chem");
// 寫入一個對象
MyClass myObj = new MyClass();
writer.Write(myObj);
StreamWriter方法中的最後一個Write()可以直接將對象寫入文本文件,文本文件中將會寫入對象的ToString()方法返回的字符串。
四、指定編碼格式
StreamWriter默認使用UTF-8編碼寫入文本文件。但是,如果需要使用其他編碼格式,可以指定編碼格式。以下是指定編碼格式的一些方法:
// 指定編碼格式為UTF-16
StreamWriter writer = new StreamWriter("test.txt", false, Encoding.Unicode);
// 指定編碼格式為GB2312
StreamWriter writer2 = new StreamWriter("test.txt", false, Encoding.GetEncoding("GB2312"));
// 使用流的編碼格式來寫入
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream, Encoding.ASCII);
writer.Write("Hello World");
五、釋放資源
StreamWriter是一種可用於寫入文件的對象,因此需要在使用後釋放資源。可以調用StreamWriter的Dispose()方法來釋放資源:
// 關閉並釋放資源 writer.Close(); writer.Dispose();
或者使用using語句釋放資源:
using (StreamWriter writer = new StreamWriter("test.txt"))
{
writer.Write("Hello World");
}
當using語句結束時,writer將自動被Dispose()釋放資源。
六、總結
StreamWriter是一個強大的文件寫入工具,可以用來寫入文本數據。在使用StreamWriter時,需要確定文件路徑和文件名,使用可用的方法來寫入文本數據並指定編碼格式。使用StreamWriter時,需要確保釋放資源,以避免資源泄漏。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/304969.html
微信掃一掃
支付寶掃一掃