一、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-hk/n/304969.html