共用方式為


StringWriter 類別

定義

實作 TextWriter,以便將資訊寫入字串。 信息會儲存在基礎 StringBuilder中。

public ref class StringWriter : System::IO::TextWriter
public class StringWriter : System.IO.TextWriter
[System.Serializable]
public class StringWriter : System.IO.TextWriter
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StringWriter : System.IO.TextWriter
type StringWriter = class
    inherit TextWriter
[<System.Serializable>]
type StringWriter = class
    inherit TextWriter
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StringWriter = class
    inherit TextWriter
Public Class StringWriter
Inherits TextWriter
繼承
StringWriter
繼承
屬性

範例

下列程式代碼範例示範如何從一組雙空格句子建立連續段落,然後將段落轉換回原始文字。

using namespace System;
using namespace System::IO;
int main()
{
   String^ textReaderText = "TextReader is the abstract base "
   "class of StreamReader and StringReader, which read "
   "characters from streams and strings, respectively.\n\n"
   "Create an instance of TextReader to open a text file "
   "for reading a specified range of characters, or to "
   "create a reader based on an existing stream.\n\n"
   "You can also use an instance of TextReader to read "
   "text from a custom backing store using the same "
   "APIs you would use for a string or a stream.\n\n";
   Console::WriteLine(  "Original text:\n\n{0}", textReaderText );

   // From textReaderText, create a continuous paragraph 
   // with two spaces between each sentence.
      String^ aLine;
   String^ aParagraph;
   StringReader^ strReader = gcnew StringReader( textReaderText );
   while ( true )
   {
      aLine = strReader->ReadLine();
      if ( aLine != nullptr )
      {
         aParagraph = String::Concat( aParagraph, aLine,  " " );
      }
      else
      {
         aParagraph = String::Concat( aParagraph,  "\n" );
         break;
      }
   }

   Console::WriteLine(  "Modified text:\n\n{0}", aParagraph );
   
   // Re-create textReaderText from aParagraph.
   int intCharacter;
   Char convertedCharacter;
   StringWriter^ strWriter = gcnew StringWriter;
   strReader = gcnew StringReader( aParagraph );
   while ( true )
   {
      intCharacter = strReader->Read();
      
      // Check for the end of the string 
      // before converting to a character.
      if ( intCharacter == -1 )
            break;

      
      convertedCharacter = Convert::ToChar( intCharacter );
      if ( convertedCharacter == '.' )
      {
         strWriter->Write(  ".\n\n" );
         
         // Bypass the spaces between sentences.
         strReader->Read();
         strReader->Read();
      }
      else
      {
         strWriter->Write( convertedCharacter );
      }
   }

   Console::WriteLine(  "\nOriginal text:\n\n{0}", strWriter->ToString() );
}
using System;
using System.IO;

class StringRW
{
    static void Main()
    {
        string textReaderText = "TextReader is the abstract base " +
            "class of StreamReader and StringReader, which read " +
            "characters from streams and strings, respectively.\n\n" +

            "Create an instance of TextReader to open a text file " +
            "for reading a specified range of characters, or to " +
            "create a reader based on an existing stream.\n\n" +

            "You can also use an instance of TextReader to read " +
            "text from a custom backing store using the same " +
            "APIs you would use for a string or a stream.\n\n";

        Console.WriteLine("Original text:\n\n{0}", textReaderText);

        // From textReaderText, create a continuous paragraph
        // with two spaces between each sentence.
        string aLine, aParagraph = null;
        StringReader strReader = new StringReader(textReaderText);
        while(true)
        {
            aLine = strReader.ReadLine();
            if(aLine != null)
            {
                aParagraph = aParagraph + aLine + " ";
            }
            else
            {
                aParagraph = aParagraph + "\n";
                break;
            }
        }
        Console.WriteLine("Modified text:\n\n{0}", aParagraph);

        // Re-create textReaderText from aParagraph.
        int intCharacter;
        char convertedCharacter;
        StringWriter strWriter = new StringWriter();
        strReader = new StringReader(aParagraph);
        while(true)
        {
            intCharacter = strReader.Read();

            // Check for the end of the string
            // before converting to a character.
            if(intCharacter == -1) break;

            convertedCharacter = (char)intCharacter;
            if(convertedCharacter == '.')
            {
                strWriter.Write(".\n\n");

                // Bypass the spaces between sentences.
                strReader.Read();
                strReader.Read();
            }
            else
            {
                strWriter.Write(convertedCharacter);
            }
        }
        Console.WriteLine("\nOriginal text:\n\n{0}",
            strWriter.ToString());
    }
}
Option Explicit
Option Strict

Imports System.IO

Public Class StrReader

    Shared Sub Main()
    
        Dim textReaderText As String = "TextReader is the " & _
            "abstract base class of StreamReader and " & _
            "StringReader, which read characters from streams " & _
            "and strings, respectively." & _
            vbCrLf & vbCrLf & _
            "Create an instance of TextReader to open a text " & _
            "file for reading a specified range of characters, " & _
            "or to create a reader based on an existing stream." & _
            vbCrLf & vbCrLf & _
            "You can also use an instance of TextReader to read " & _
            "text from a custom backing store using the same " & _
            "APIs you would use for a string or a stream." & _
            vbCrLf & vbCrLf

        Console.WriteLine("Original text:" & vbCrLf & vbCrLf & _
            textReaderText)

        ' From textReaderText, create a continuous paragraph 
        ' with two spaces between each sentence.
        Dim aLine, aParagraph As String
        Dim strReader As New StringReader(textReaderText)
        While True
            aLine = strReader.ReadLine()
            If aLine Is Nothing Then
                aParagraph = aParagraph & vbCrLf
                Exit While
            Else
                aParagraph = aParagraph & aLine & " "
            End If
        End While
        Console.WriteLine("Modified text:" & vbCrLf & vbCrLf & _ 
            aParagraph)
    
        ' Re-create textReaderText from aParagraph.
        Dim intCharacter As Integer 
        Dim convertedCharacter As Char 
        Dim strWriter As New StringWriter()
        strReader = New StringReader(aParagraph)
        While True
            intCharacter = strReader.Read()

            ' Check for the end of the string 
            ' before converting to a character.
            If intCharacter = -1 Then
                Exit While
            End If

            convertedCharacter = Convert.ToChar(intCharacter)
            If convertedCharacter = "."C Then
                strWriter.Write("." & vbCrLf & vbCrLf)

                ' Bypass the spaces between sentences.
                strReader.Read()
                strReader.Read()
            Else
                strWriter.Write(convertedCharacter)
            End If
        End While
        Console.WriteLine(vbCrLf & "Original text:" & vbCrLf & _ 
            vbCrLf & strWriter.ToString())

    End Sub
End Class

備註

StringWriter 可讓您以同步或異步方式寫入字串。 您可以使用 Write(Char)WriteAsync(Char) 方法一次撰寫字元、一次使用 Write(String)WriteAsync(String) 方法的字串。 此外,您可以使用其中一個 WriteLineAsync 方法,以異步方式撰寫字元、字元陣列或字串,後面接著行終止符。

注意

此類型會實作 IDisposable 介面,但實際上沒有任何要處置的資源。 這表示不需要直接呼叫 Dispose() 或使用語言建構,例如 using(C#) 或 Using (在 Visual Basic 中) 來處置它。

下表列出其他一般或相關 I/O 工作的範例。

若要這樣做... 請參閱本主題中的範例...
建立文字檔。 如何:將文字寫入檔案
寫入文字檔。 如何:將文字寫入檔案
從文字檔讀取。 如何:從檔案讀取文字
將文字附加至檔案。 如何:開啟並附加至記錄檔

File.AppendText

FileInfo.AppendText
取得檔案的大小。 FileInfo.Length
取得檔案的屬性。 File.GetAttributes
設定檔案的屬性。 File.SetAttributes
判斷檔案是否存在。 File.Exists
從二進位檔讀取。 如何:讀取和寫入新建立的數據檔
寫入二進位檔。 如何:讀取和寫入新建立的數據檔

建構函式

StringWriter()

初始化 StringWriter 類別的新實例。

StringWriter(IFormatProvider)

使用指定的格式控件,初始化 StringWriter 類別的新實例。

StringWriter(StringBuilder)

初始化 StringWriter 類別的新實體,這個實體會寫入指定的 StringBuilder

StringWriter(StringBuilder, IFormatProvider)

初始化 StringWriter 類別的新實例,這個實例會寫入指定的 StringBuilder,並具有指定的格式提供者。

欄位

CoreNewLine

儲存用於這個 TextWriter的新行字元。

(繼承來源 TextWriter)

屬性

Encoding

取得寫入輸出的 Encoding

FormatProvider

取得控制項格式設定的物件。

(繼承來源 TextWriter)
NewLine

取得或設定目前 TextWriter所使用的行終止符字串。

(繼承來源 TextWriter)

方法

Close()

關閉目前的 StringWriter 和基礎數據流。

Close()

關閉目前的寫入器,並釋放與寫入器相關聯的任何系統資源。

(繼承來源 TextWriter)
CreateObjRef(Type)

建立物件,其中包含產生用來與遠端物件通訊之 Proxy 所需的所有相關信息。

(繼承來源 MarshalByRefObject)
Dispose()

釋放 TextWriter 物件所使用的所有資源。

(繼承來源 TextWriter)
Dispose(Boolean)

釋放 StringWriter 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

DisposeAsync()

以異步方式釋放 TextWriter 物件所使用的所有資源。

(繼承來源 TextWriter)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Flush()

清除目前寫入器的所有緩衝區,並導致任何緩衝的數據寫入基礎裝置。

(繼承來源 TextWriter)
FlushAsync()

以異步方式清除目前寫入器的所有緩衝區,並導致任何緩衝的數據寫入基礎裝置。

FlushAsync()

以異步方式清除目前寫入器的所有緩衝區,並導致任何緩衝的數據寫入基礎裝置。

(繼承來源 TextWriter)
FlushAsync(CancellationToken)

以異步方式清除目前寫入器的所有緩衝區,並導致任何緩衝的數據寫入基礎裝置。

(繼承來源 TextWriter)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetLifetimeService()
已淘汰.

擷取控制這個實例存留期原則的目前存留期服務物件。

(繼承來源 MarshalByRefObject)
GetStringBuilder()

傳回基礎 StringBuilder

GetType()

取得目前實例的 Type

(繼承來源 Object)
InitializeLifetimeService()
已淘汰.

取得存留期服務物件,以控制這個實例的存留期原則。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立目前 MarshalByRefObject 對象的淺層複本。

(繼承來源 MarshalByRefObject)
ToString()

傳回字串,其中包含到目前為止寫入目前 StringWriter 的字元。

Write(Boolean)

Boolean 值的文字表示寫入文字數據流。

(繼承來源 TextWriter)
Write(Char)

將字元寫入字串。

Write(Char[])

將字元陣列寫入文字數據流。

(繼承來源 TextWriter)
Write(Char[], Int32, Int32)

將字元的子陣列寫入字串。

Write(Decimal)

將十進位值的文字表示寫入文字數據流。

(繼承來源 TextWriter)
Write(Double)

將8位元組浮點值的文字表示寫入文字數據流。

(繼承來源 TextWriter)
Write(Int32)

將 4 位元組帶正負號整數的文字表示寫入文字數據流。

(繼承來源 TextWriter)
Write(Int64)

將8位元組帶正負號整數的文字表示寫入文字數據流。

(繼承來源 TextWriter)
Write(Object)

呼叫該物件上的 ToString 方法,將 物件的文字表示寫入文字數據流。

(繼承來源 TextWriter)
Write(ReadOnlySpan<Char>)

將字元範圍的字串表示寫入目前字串。

Write(ReadOnlySpan<Char>)

將字元範圍寫入文字數據流。

(繼承來源 TextWriter)
Write(Single)

將 4 位元組浮點值的文字表示寫入文字數據流。

(繼承來源 TextWriter)
Write(String)

將字串寫入目前字串。

Write(String, Object)

使用與 Format(String, Object) 方法相同的語意,將格式化字串寫入文字數據流。

(繼承來源 TextWriter)
Write(String, Object, Object)

使用與 Format(String, Object, Object) 方法相同的語意,將格式化字串寫入文字數據流。

(繼承來源 TextWriter)
Write(String, Object, Object, Object)

使用與 Format(String, Object, Object, Object) 方法相同的語意,將格式化字串寫入文字數據流。

(繼承來源 TextWriter)
Write(String, Object[])

使用與 Format(String, Object[]) 方法相同的語意,將格式化字串寫入文字數據流。

(繼承來源 TextWriter)
Write(String, ReadOnlySpan<Object>)

使用與 Format(String, ReadOnlySpan<Object>)相同的語意,將格式化字串寫入文字數據流。

(繼承來源 TextWriter)
Write(StringBuilder)

將字串產生器的字串表示寫入目前字串。

Write(StringBuilder)

將字串產生器寫入至文字數據流。

(繼承來源 TextWriter)
Write(UInt32)

將 4 位元組無符號整數的文字表示寫入文字數據流。

(繼承來源 TextWriter)
Write(UInt64)

將8位元組無符號整數的文字表示寫入文字數據流。

(繼承來源 TextWriter)
WriteAsync(Char)

以異步方式將字元寫入字串。

WriteAsync(Char)

以異步方式將字元寫入文字數據流。

(繼承來源 TextWriter)
WriteAsync(Char[])

以異步方式將字元陣列寫入文字數據流。

(繼承來源 TextWriter)
WriteAsync(Char[], Int32, Int32)

以異步方式將字元的子數位寫入字串。

WriteAsync(Char[], Int32, Int32)

以異步方式將字元的子數位寫入文字數據流。

(繼承來源 TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

以異步方式將字元的記憶體區域寫入字串。

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

以異步方式將字元記憶體區域寫入文字數據流。

(繼承來源 TextWriter)
WriteAsync(String)

以異步方式將字串寫入目前字串。

WriteAsync(String)

以異步方式將字串寫入文字數據流。

(繼承來源 TextWriter)
WriteAsync(StringBuilder, CancellationToken)

以異步方式將字串產生器的文字表示寫入字串。

WriteAsync(StringBuilder, CancellationToken)

以異步方式將字串產生器寫入至文字數據流。

(繼承來源 TextWriter)
WriteLine()

將行終止符寫入文字數據流。

(繼承來源 TextWriter)
WriteLine(Boolean)

Boolean 值的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Char)

將字元寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Char[])

將字元陣列寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Char[], Int32, Int32)

將字元的子陣列寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Decimal)

將十進位值的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Double)

將8位元組浮點值的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Int32)

將 4 位元組帶正負號整數的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Int64)

將8位元組帶正負號整數的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Object)

呼叫該物件上的 ToString 方法,後面接著行終止符,將物件的文字表示寫入文字數據流。

(繼承來源 TextWriter)
WriteLine(ReadOnlySpan<Char>)

將文字表示寫入字串,後面接著行終止符。

WriteLine(ReadOnlySpan<Char>)

將字元範圍的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(Single)

將 4 位元組浮點值的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(String)

將字串寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(String, Object)

使用與 Format(String, Object) 方法相同的語意,將格式化字串和新行寫入文字數據流。

(繼承來源 TextWriter)
WriteLine(String, Object, Object)

使用與 Format(String, Object, Object) 方法相同的語意,將格式化字串和新行寫入文字數據流。

(繼承來源 TextWriter)
WriteLine(String, Object, Object, Object)

使用與 Format(String, Object)相同的語意,將格式化字串和新行寫出至文字數據流。

(繼承來源 TextWriter)
WriteLine(String, Object[])

使用與 Format(String, Object)相同的語意,將格式化字串和新行寫出至文字數據流。

(繼承來源 TextWriter)
WriteLine(String, ReadOnlySpan<Object>)

使用與 Format(String, ReadOnlySpan<Object>)相同的語意,將格式化字串和新行寫出至文字數據流。

(繼承來源 TextWriter)
WriteLine(StringBuilder)

將字串產生器的文字表示寫入字串,後面接著行終止符。

WriteLine(StringBuilder)

將字串產生器的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(UInt32)

將 4 位元組無符號整數的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLine(UInt64)

將8位元組無符號整數的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLineAsync()

以異步方式將行終止符寫入文字數據流。

(繼承來源 TextWriter)
WriteLineAsync(Char)

以異步方式將字元寫入字串,後面接著行終止符。

WriteLineAsync(Char)

以異步方式將字元寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLineAsync(Char[])

以異步方式將字元陣列寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLineAsync(Char[], Int32, Int32)

以異步方式將字元的子陣列寫入字串,後面接著行終止符。

WriteLineAsync(Char[], Int32, Int32)

以異步方式將字元的子陣列寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

以異步方式將字元記憶體區域的字串表示寫入目前字串,後面接著行終止符。

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

以異步方式將字元記憶體區域的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLineAsync(String)

以異步方式將字串寫入目前字串,後面接著行終止符。

WriteLineAsync(String)

以異步方式將字串寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

以異步方式將字串產生器的字串表示寫入目前字串,後面接著行終止符。

WriteLineAsync(StringBuilder, CancellationToken)

以異步方式將字串產生器的文字表示寫入文字數據流,後面接著行終止符。

(繼承來源 TextWriter)

明確介面實作

IDisposable.Dispose()

如需此成員的描述,請參閱 Dispose()

(繼承來源 TextWriter)

擴充方法

ConfigureAwait(IAsyncDisposable, Boolean)

設定如何執行從異步可處置專案傳回的工作等候。

適用於

另請參閱