StringWriter Klasa

Definicja

Implementuje element TextWriter do zapisywania informacji w ciągu. Informacje są przechowywane w bazowym StringBuilderobiekcie .

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
Dziedziczenie
StringWriter
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano tworzenie akapitu ciągłego z grupy zdań z podwójnym odstępem, a następnie konwersję akapitu z powrotem na oryginalny tekst.

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

Uwagi

StringWriter Umożliwia zapisywanie w ciągu synchronicznie lub asynchronicznie. Znak można napisać jednocześnie za Write(Char) pomocą metody lub WriteAsync(Char) , ciągu w czasie przy użyciu Write(String) metody lub WriteAsync(String) . Ponadto można napisać znak, tablicę znaków lub ciąg, po którym następuje asynchronicznie terminator wierszy przy użyciu jednej z WriteLineAsync metod.

Uwaga

Ten typ implementuje IDisposable interfejs, ale w rzeczywistości nie ma żadnych zasobów do usunięcia. Oznacza to, że usuwanie go przez bezpośrednie wywołanie Dispose() lub użycie konstrukcji językowej, takiej jak using (w języku C#) lub Using (w Visual Basic) nie jest konieczne.

W poniższej tabeli wymieniono przykłady innych typowych lub powiązanych zadań we/wy.

Aby wykonać tę czynność... Zobacz przykład w tym temacie...
Utwórz plik tekstowy. Instrukcje: Zapisywanie tekstu w pliku
Zapisywanie w pliku tekstowym. Instrukcje: Zapisywanie tekstu w pliku
Odczyt z pliku tekstowego. Instrukcje: Odczytywanie tekstu z pliku
Dołączanie tekstu do pliku. Instrukcje: Otwieranie pliku dziennika i dołączanie do niego

File.AppendText

FileInfo.AppendText
Pobierz rozmiar pliku. FileInfo.Length
Pobierz atrybuty pliku. File.GetAttributes
Ustaw atrybuty pliku. File.SetAttributes
Ustal, czy plik istnieje. File.Exists
Odczyt z pliku binarnego. Instrukcje: Odczyt i zapis we właśnie utworzonym pliku danych
Zapisywanie w pliku binarnym. Instrukcje: Odczyt i zapis we właśnie utworzonym pliku danych

Konstruktory

StringWriter()

Inicjuje nowe wystąpienie klasy StringWriter.

StringWriter(IFormatProvider)

Inicjuje StringWriter nowe wystąpienie klasy z określoną kontrolką formatu.

StringWriter(StringBuilder)

Inicjuje StringWriter nowe wystąpienie klasy, która zapisuje w określonym obiekcie StringBuilder.

StringWriter(StringBuilder, IFormatProvider)

Inicjuje StringWriter nowe wystąpienie klasy, która zapisuje w określonym i StringBuilder ma określonego dostawcę formatu.

Pola

CoreNewLine

Przechowuje nowe znaki wiersza używane dla tego TextWriterelementu .

(Odziedziczone po TextWriter)

Właściwości

Encoding

Pobiera dane Encoding wyjściowe, w których są zapisywane dane wyjściowe.

FormatProvider

Pobiera obiekt, który kontroluje formatowanie.

(Odziedziczone po TextWriter)
NewLine

Pobiera lub ustawia ciąg terminatora wiersza używany przez bieżący TextWriterelement .

(Odziedziczone po TextWriter)

Metody

Close()

Zamyka bieżący StringWriter i bazowy strumień.

Close()

Zamyka bieżący składnik zapisywania i zwalnia wszystkie zasoby systemowe skojarzone z modułem zapisywania.

(Odziedziczone po TextWriter)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszystkie zasoby używane przez TextWriter obiekt.

(Odziedziczone po TextWriter)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element StringWriter i opcjonalnie zwalnia zasoby zarządzane.

DisposeAsync()

Asynchronicznie zwalnia wszystkie zasoby używane przez TextWriter obiekt.

(Odziedziczone po TextWriter)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Flush()

Czyści wszystkie bufory dla bieżącego modułu zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym.

(Odziedziczone po TextWriter)
FlushAsync()

Asynchronicznie czyści wszystkie bufory dla bieżącego modułu zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym.

FlushAsync()

Asynchronicznie czyści wszystkie bufory dla bieżącego modułu zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym.

(Odziedziczone po TextWriter)
FlushAsync(CancellationToken)

Asynchronicznie czyści wszystkie bufory dla bieżącego modułu zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym.

(Odziedziczone po TextWriter)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetStringBuilder()

Zwraca bazowy StringBuilderelement .

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
ToString()

Zwraca ciąg zawierający znaki zapisane do bieżącej StringWriter do tej pory.

Write(Boolean)

Zapisuje tekstową reprezentację Boolean wartości w strumieniu tekstowym.

(Odziedziczone po TextWriter)
Write(Char)

Zapisuje znak w ciągu.

Write(Char[])

Zapisuje tablicę znaków do strumienia tekstu.

(Odziedziczone po TextWriter)
Write(Char[], Int32, Int32)

Zapisuje podarraj znaków w ciągu.

Write(Decimal)

Zapisuje tekstową reprezentację wartości dziesiętnej w strumieniu tekstowym.

(Odziedziczone po TextWriter)
Write(Double)

Zapisuje tekstową reprezentację wartości zmiennoprzecinkowej 8 bajtów na strumień tekstowy.

(Odziedziczone po TextWriter)
Write(Int32)

Zapisuje reprezentację tekstową 4-bajtowej liczby całkowitej ze znakiem do strumienia tekstu.

(Odziedziczone po TextWriter)
Write(Int64)

Zapisuje tekstową reprezentację 8-bajtowej liczby całkowitej ze znakiem do strumienia tekstu.

(Odziedziczone po TextWriter)
Write(Object)

Zapisuje reprezentację tekstu obiektu w strumieniu tekstowym przez wywołanie ToString metody na tym obiekcie.

(Odziedziczone po TextWriter)
Write(ReadOnlySpan<Char>)

Zapisuje reprezentację ciągu zakresu znaków w bieżącym ciągu.

Write(ReadOnlySpan<Char>)

Zapisuje zakres znaków do strumienia tekstu.

(Odziedziczone po TextWriter)
Write(Single)

Zapisuje tekstową reprezentację wartości zmiennoprzecinkowej 4-bajtowej na strumień tekstowy.

(Odziedziczone po TextWriter)
Write(String)

Zapisuje ciąg w bieżącym ciągu.

Write(String, Object)

Zapisuje sformatowany ciąg do strumienia tekstu przy użyciu tych samych semantyki co Format(String, Object) metoda.

(Odziedziczone po TextWriter)
Write(String, Object, Object)

Zapisuje sformatowany ciąg do strumienia tekstu przy użyciu tych samych semantyki co Format(String, Object, Object) metoda.

(Odziedziczone po TextWriter)
Write(String, Object, Object, Object)

Zapisuje sformatowany ciąg do strumienia tekstu przy użyciu tych samych semantyki co Format(String, Object, Object, Object) metoda.

(Odziedziczone po TextWriter)
Write(String, Object[])

Zapisuje sformatowany ciąg do strumienia tekstu przy użyciu tych samych semantyki co Format(String, Object[]) metoda.

(Odziedziczone po TextWriter)
Write(StringBuilder)

Zapisuje reprezentację ciągu konstruktora ciągów w bieżącym ciągu.

Write(StringBuilder)

Zapisuje konstruktora ciągów do strumienia tekstu.

(Odziedziczone po TextWriter)
Write(UInt32)

Zapisuje reprezentację tekstową 4-bajtowej liczby całkowitej bez znaku do strumienia tekstu.

(Odziedziczone po TextWriter)
Write(UInt64)

Zapisuje reprezentację tekstową 8-bajtowej liczby całkowitej bez znaku do strumienia tekstu.

(Odziedziczone po TextWriter)
WriteAsync(Char)

Zapisuje znak w ciągu asynchronicznie.

WriteAsync(Char)

Zapisuje znak do strumienia tekstu asynchronicznie.

(Odziedziczone po TextWriter)
WriteAsync(Char[])

Zapisuje tablicę znaków w strumieniu tekstowym asynchronicznie.

(Odziedziczone po TextWriter)
WriteAsync(Char[], Int32, Int32)

Zapisuje podarraj znaków do ciągu asynchronicznie.

WriteAsync(Char[], Int32, Int32)

Zapisuje podarraj znaków do strumienia tekstu asynchronicznie.

(Odziedziczone po TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronicznie zapisuje region pamięci znaków w ciągu.

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronicznie zapisuje region pamięci znaków w strumieniu tekstowym.

(Odziedziczone po TextWriter)
WriteAsync(String)

Zapisuje ciąg w bieżącym ciągu asynchronicznie.

WriteAsync(String)

Zapisuje ciąg w strumieniu tekstowym asynchronicznie.

(Odziedziczone po TextWriter)
WriteAsync(StringBuilder, CancellationToken)

Asynchronicznie zapisuje tekstową reprezentację konstruktora ciągów w ciągu.

WriteAsync(StringBuilder, CancellationToken)

Asynchronicznie zapisuje konstruktora ciągów do strumienia tekstu.

(Odziedziczone po TextWriter)
WriteLine()

Zapisuje terminator wiersza do strumienia tekstu.

(Odziedziczone po TextWriter)
WriteLine(Boolean)

Zapisuje tekstową reprezentację Boolean wartości w strumieniu tekstowym, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Char)

Zapisuje znak do strumienia tekstu, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Char[])

Zapisuje tablicę znaków do strumienia tekstu, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Char[], Int32, Int32)

Zapisuje podarraj znaków do strumienia tekstu, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Decimal)

Zapisuje tekstową reprezentację wartości dziesiętnej do strumienia tekstowego, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Double)

Zapisuje tekstową reprezentację wartości zmiennoprzecinkowej 8 bajtów na strumień tekstowy, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Int32)

Zapisuje reprezentację tekstową 4-bajtowej liczby całkowitej ze znakiem do strumienia tekstowego, po której następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Int64)

Zapisuje tekstową reprezentację liczby całkowitej ze znakiem 8 bajtów do strumienia tekstu, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Object)

Zapisuje reprezentację tekstu obiektu w strumieniu tekstowym, wywołując ToString metodę na tym obiekcie, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(ReadOnlySpan<Char>)

Zapisuje tekstową reprezentację zakresu znaków w ciągu, po którym następuje terminator wiersza.

WriteLine(ReadOnlySpan<Char>)

Zapisuje tekstową reprezentację zakresu znaków w strumieniu tekstowym, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Single)

Zapisuje tekstową reprezentację wartości zmiennoprzecinkowej 4-bajtowej do strumienia tekstowego, po której następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(String)

Zapisuje ciąg do strumienia tekstu, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(String, Object)

Zapisuje sformatowany ciąg i nowy wiersz do strumienia tekstu przy użyciu tych samych semantyki co Format(String, Object) metoda.

(Odziedziczone po TextWriter)
WriteLine(String, Object, Object)

Zapisuje sformatowany ciąg i nowy wiersz do strumienia tekstu przy użyciu tych samych semantyki co Format(String, Object, Object) metoda.

(Odziedziczone po TextWriter)
WriteLine(String, Object, Object, Object)

Zapisuje sformatowany ciąg i nowy wiersz do strumienia tekstu przy użyciu tych samych semantyki co Format(String, Object).

(Odziedziczone po TextWriter)
WriteLine(String, Object[])

Zapisuje sformatowany ciąg i nowy wiersz do strumienia tekstu przy użyciu tych samych semantyki co Format(String, Object).

(Odziedziczone po TextWriter)
WriteLine(StringBuilder)

Zapisuje tekstową reprezentację konstruktora ciągów w ciągu, po którym następuje terminator wiersza.

WriteLine(StringBuilder)

Zapisuje tekstową reprezentację konstruktora ciągów w strumieniu tekstowym, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(UInt32)

Zapisuje reprezentację tekstową 4-bajtowej liczby całkowitej bez znaku do strumienia tekstowego, po której następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(UInt64)

Zapisuje reprezentację tekstową 8-bajtowej liczby całkowitej bez znaku do strumienia tekstu, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLineAsync()

Asynchronicznie zapisuje terminator wiersza do strumienia tekstu.

(Odziedziczone po TextWriter)
WriteLineAsync(Char)

Asynchronicznie zapisuje znak w ciągu, po którym następuje terminator wiersza.

WriteLineAsync(Char)

Asynchronicznie zapisuje znak do strumienia tekstu, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLineAsync(Char[])

Asynchronicznie zapisuje tablicę znaków do strumienia tekstu, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLineAsync(Char[], Int32, Int32)

asynchronicznie zapisuje podarraj znaków do ciągu, a następnie terminator wiersza.

WriteLineAsync(Char[], Int32, Int32)

Asynchronicznie zapisuje podarraj znaków do strumienia tekstu, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronicznie zapisuje ciąg reprezentujący region pamięci znaków w bieżącym ciągu, po którym następuje terminator wiersza.

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronicznie zapisuje tekstową reprezentację regionu pamięci znaków w strumieniu tekstowym, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLineAsync(String)

Asynchronicznie zapisuje ciąg w bieżącym ciągu, po którym następuje terminator wiersza.

WriteLineAsync(String)

Asynchronicznie zapisuje ciąg w strumieniu tekstowym, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

Asynchronicznie zapisuje reprezentację ciągu konstruktora ciągów w bieżącym ciągu, a następnie terminator wiersza.

WriteLineAsync(StringBuilder, CancellationToken)

Asynchronicznie zapisuje tekstową reprezentację konstruktora ciągów w strumieniu tekstowym, a następnie terminator wiersza.

(Odziedziczone po TextWriter)

Jawne implementacje interfejsu

IDisposable.Dispose()

Aby uzyskać opis tego elementu członkowskiego, zobacz Dispose().

(Odziedziczone po TextWriter)

Metody rozszerzania

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguruje sposób oczekiwania na zadania zwracane z jednorazowego użytku asynchronicznego.

Dotyczy

Zobacz też