C# StringWriter類


這個類用於寫入和處理字串資料而不是檔案。它是派生自TextWriter類。StringWriter類寫入的字串資料儲存到StringBuilder中。

StringWriter類的目的是將操作字串的結果儲存到StringBuilder中。

StringWriter類簽名

[SerializableAttribute]  
[ComVisibleAttribute(true)]  
public class StringWriter : TextWriter

C# StringWriter建構函式

建構函式 描述
StringWriter() 它用於初始化StringWriter類的新範例。
StringWriter(IFormatProvider) 它用於使用指定的格式控制元件初始化StringWriter類的新範例。
StringWriter(StringBuilder) 它用於初始化寫入指定StringBuilderStringWriter類的新範例。
StringWriter(StringBuilder,?IFormatProvider) 它用於初始化寫入指定的StringBuilderStringWriter類的新範例,並具有指定的格式提供程式。

C# StringWriter屬性

屬性 描述
Encoding 它用於獲取寫入輸出的編碼。
FormatProvider 它用於獲取控制格式化的物件。
NewLine 它用於獲取或設定當前TextWriter使用的行終止符字串。

C# StringWriter方法

屬性 描述
Close() 它用於關閉當前的StringWriter和底層流。
Dispose() 它用於釋放TextWriter物件使用的所有資源。
Equals(Object) 它用於確定指定的物件是否等於當前物件。
Finalize() 它允許物件嘗試釋放資源並執行其他清理操作。
GetHashCode() 它用作預設雜湊函式。
GetStringBuilder() 它返回底層的StringBuilder
ToString() 它返回一個包含寫入當前StringWriter的字串。
WriteAsync(String) 它用於將非同步字串寫入字串。
Write(Boolean) 它用於將布林值的文字表示寫入字串。
Write(String) 它用於將字串寫入當前字串。
WriteLine(String) 它用於將字串後跟一個行終止符寫入字串或流。
WriteLineAsync(String) 寫一個字串後跟一個行終止符與當前字串非同步(覆蓋TextWriter.WriteLineAsync(String)方法。)

C# StringWriter範例

在下面的程式中,使用StringWriter類將字串資訊寫入StringBuilder類。 StringReader類用於讀取寫入資訊到StringBuilder類中。

using System;
using System.IO;
using System.Text;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "Hello, Welcome to the tw511.com \n" +
                "It is nice site. \n" +
                "It provides IT tutorials";
            // Creating StringBuilder instance  
            StringBuilder sb = new StringBuilder();
            // Passing StringBuilder instance into StringWriter  
            StringWriter writer = new StringWriter(sb);
            // Writing data using StringWriter  
            writer.WriteLine(text);
            writer.Flush();
            // Closing writer connection  
            writer.Close();
            // Creating StringReader instance and passing StringBuilder  
            StringReader reader = new StringReader(sb.ToString());
            // Reading data  
            while (reader.Peek() > -1)
            {
                Console.WriteLine(reader.ReadLine());
            }
        }
    }
}

執行上面範例程式碼,得到以下結果 -

Hello, Welcome to the tw511.com
It is nice site.
It provides IT tutorials