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...
Twórca pliku tekstowego. 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 StringBuilderobiekcie .

StringWriter(StringBuilder, IFormatProvider)

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

Pola

CoreNewLine

Przechowuje znaki nowego 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 moduł 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 składnika zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu źródłowym.

(Odziedziczone po TextWriter)
FlushAsync()

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

FlushAsync()

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

(Odziedziczone po TextWriter)
FlushAsync(CancellationToken)

Asynchronicznie czyści wszystkie bufory dla bieżącego składnika 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 w celu kontrolowania zasad 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 podtablicę znaków w ciągu.

Write(Decimal)

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

(Odziedziczone po TextWriter)
Write(Double)

Zapisuje tekstową reprezentację 8-bajtowej wartości zmiennoprzecinkowej do strumienia tekstu.

(Odziedziczone po TextWriter)
Write(Int32)

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

(Odziedziczone po TextWriter)
Write(Int64)

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

(Odziedziczone po TextWriter)
Write(Object)

Zapisuje reprezentację tekstową 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 reprezentację tekstową 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 tej samej semantyki co Format(String, Object) metoda.

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

Zapisuje sformatowany ciąg do strumienia tekstowego przy użyciu tej samej 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 tej samej semantyki co Format(String, Object, Object, Object) metoda.

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

Zapisuje sformatowany ciąg do strumienia tekstu przy użyciu tej samej 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 w strumieniu tekstowym.

(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 w strumieniu tekstowym asynchronicznie.

(Odziedziczone po TextWriter)
WriteAsync(Char[])

Zapisuje tablicę znaków w strumieniu tekstowym asynchronicznie.

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

Zapisuje podsieć znaków w ciągu asynchronicznie.

WriteAsync(Char[], Int32, Int32)

Zapisuje podtablicę znaków w strumieniu tekstowym asynchronicznie.

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

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

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronicznie zapisuje obszar pamięci znaków w strumieniu tekstu.

(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 w strumieniu tekstowym.

(Odziedziczone po TextWriter)
WriteLine()

Zapisuje terminator wiersza w strumieniu tekstowym.

(Odziedziczone po TextWriter)
WriteLine(Boolean)

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

(Odziedziczone po TextWriter)
WriteLine(Char)

Zapisuje znak w strumieniu tekstowym, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Char[])

Zapisuje tablicę znaków w strumieniu tekstowym, po którym następuje terminator wiersza.

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

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

(Odziedziczone po TextWriter)
WriteLine(Decimal)

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

(Odziedziczone po TextWriter)
WriteLine(Double)

Zapisuje reprezentację tekstową 8-bajtowej wartości zmiennoprzecinkowej do strumienia tekstowego, a następnie terminator linii.

(Odziedziczone po TextWriter)
WriteLine(Int32)

Zapisuje reprezentację tekstową 4-bajtowej liczby całkowitej ze znakiem do strumienia tekstu, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Int64)

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

(Odziedziczone po TextWriter)
WriteLine(Object)

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

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

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

WriteLine(ReadOnlySpan<Char>)

Zapisuje reprezentację tekstu zakresu znaków w strumieniu tekstowym, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Single)

Zapisuje reprezentację tekstową 4-bajtowej wartości zmiennoprzecinkowej do strumienia tekstowego, a następnie terminator linii.

(Odziedziczone po TextWriter)
WriteLine(String)

Zapisuje ciąg w strumieniu tekstowym, 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 tej samej 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 tej samej 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 tej samej semantyki co Format(String, Object).

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

Zapisuje sformatowany ciąg i nowy wiersz do strumienia tekstu przy użyciu tej samej 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, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(UInt32)

Zapisuje reprezentację tekstową 4-bajtowej liczby całkowitej bez znaku do strumienia tekstu, a następnie 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 linii w strumieniu tekstowym.

(Odziedziczone po TextWriter)
WriteLineAsync(Char)

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

WriteLineAsync(Char)

Asynchronicznie zapisuje znak w strumieniu tekstowym, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLineAsync(Char[])

Asynchronicznie zapisuje tablicę znaków w strumieniu tekstowym, a następnie terminator wiersza.

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

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

WriteLineAsync(Char[], Int32, Int32)

Asynchronicznie zapisuje podtablicę znaków w strumieniu tekstowym, a następnie terminator wiersza.

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

Asynchronicznie zapisuje ciąg reprezentujący obszar pamięci znaków w bieżącym ciągu, a następnie terminator wiersza.

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronicznie zapisuje tekstową reprezentację regionu pamięci znaków w strumieniu tekstu, 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, po którym następuje 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 członka, 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ż