Udostępnij za pośrednictwem


StringWriter Klasa

Definicja

Implementuje TextWriter do zapisywania informacji w ciągu. Informacje są przechowywane w podstawowym 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
Dziedziczenie
StringWriter
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano tworzenie akapitu ciągłego z grupy zdublowanych zdań, 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 pomocą metody Write(Char) lub WriteAsync(Char), ciągu w czasie przy użyciu Write(String) lub metody WriteAsync(String). Ponadto można napisać znak, tablicę znaków lub ciąg, po którym następuje asynchronicznie terminator linii z jedną z metod WriteLineAsync.

Nuta

Ten typ implementuje interfejs IDisposable, ale w rzeczywistości nie ma żadnych zasobów do usunięcia. Oznacza to, że usuwanie go bezpośrednio przez 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 to zrobić... 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 i dołączanie do pliku dziennika

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: odczytywanie i zapisywanie w nowo utworzonym pliku danych
Zapisywanie w pliku binarnym. Instrukcje: odczytywanie i zapisywanie w nowo utworzonym pliku danych

Konstruktory

StringWriter()

Inicjuje nowe wystąpienie klasy StringWriter.

StringWriter(IFormatProvider)

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

StringWriter(StringBuilder)

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

StringWriter(StringBuilder, IFormatProvider)

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

Pola

CoreNewLine

Przechowuje znaki nowego wiersza używane w tym TextWriter.

(Odziedziczone po TextWriter)

Właściwości

Encoding

Pobiera Encoding, w którym 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 TextWriter.

(Odziedziczone po TextWriter)

Metody

Close()

Zamyka bieżące 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 obiekt TextWriter.

(Odziedziczone po TextWriter)
Dispose(Boolean)

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

DisposeAsync()

Asynchronicznie zwalnia wszystkie zasoby używane przez obiekt TextWriter.

(Odziedziczone po TextWriter)
Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
Flush()

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

(Odziedziczone po TextWriter)
FlushAsync()

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

FlushAsync()

Asynchronicznie czyści wszystkie 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 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 podstawowy StringBuilder.

GetType()

Pobiera Type 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 Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

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

(Odziedziczone po MarshalByRefObject)
ToString()

Zwraca ciąg zawierający znaki zapisane w bieżącym 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 w strumieniu tekstowym.

(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ę 8-bajtowej wartości zmiennoprzecinkowej do strumienia tekstowego.

(Odziedziczone po TextWriter)
Write(Int32)

Zapisuje reprezentację tekstu z 4-bajtową liczbą całkowitą ze znakiem do strumienia tekstowego.

(Odziedziczone po TextWriter)
Write(Int64)

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

(Odziedziczone po TextWriter)
Write(Object)

Zapisuje tekstową reprezentację obiektu w strumieniu tekstowym, wywołując metodę ToString dla tego obiektu.

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

(Odziedziczone po TextWriter)
Write(Single)

Zapisuje reprezentację tekstu 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 w strumieniu tekstowym przy użyciu tej samej semantyki co metoda Format(String, Object).

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

Zapisuje sformatowany ciąg w strumieniu tekstowym przy użyciu tej samej semantyki co metoda Format(String, Object, Object).

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

Zapisuje sformatowany ciąg w strumieniu tekstowym przy użyciu tej samej semantyki co metoda Format(String, Object, Object, Object).

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

Zapisuje sformatowany ciąg w strumieniu tekstowym przy użyciu tej samej semantyki co metoda Format(String, Object[]).

(Odziedziczone po TextWriter)
Write(String, ReadOnlySpan<Object>)

Zapisuje sformatowany ciąg w strumieniu tekstowym przy użyciu tej samej semantyki co Format(String, ReadOnlySpan<Object>).

(Odziedziczone po TextWriter)
Write(StringBuilder)

Zapisuje ciąg reprezentujący 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ę tekstu 4-bajtowej liczby całkowitej bez znaku do strumienia tekstowego.

(Odziedziczone po TextWriter)
Write(UInt64)

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

(Odziedziczone po TextWriter)
WriteAsync(Char)

Zapisuje znak w ciągu asynchronicznie.

WriteAsync(Char)

Zapisuje znak w strumieniu 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 w ciągu asynchronicznie.

WriteAsync(Char[], Int32, Int32)

Zapisuje podarraj znaków w strumieniu tekstowym 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 w strumieniu tekstowym.

(Odziedziczone po TextWriter)
WriteLine()

Zapisuje terminator wiersza w strumieniu tekstowym.

(Odziedziczone po TextWriter)
WriteLine(Boolean)

Zapisuje tekstową reprezentację wartości Boolean 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 w strumieniu tekstowym, po której następuje terminator wiersza.

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

Zapisuje podarraj znaków do strumienia tekstowego, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Decimal)

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

(Odziedziczone po TextWriter)
WriteLine(Double)

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

(Odziedziczone po TextWriter)
WriteLine(Int32)

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

(Odziedziczone po TextWriter)
WriteLine(Int64)

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

(Odziedziczone po TextWriter)
WriteLine(Object)

Zapisuje reprezentację tekstu obiektu w strumieniu tekstowym, wywołując metodę ToString dla tego obiektu, 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, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(Single)

Zapisuje tekstową reprezentację wartości zmiennoprzecinkowej 4-bajtowej na strumień tekstowy, a następnie terminator wiersza.

(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 metoda Format(String, Object).

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

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

(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(String, ReadOnlySpan<Object>)

Zapisuje sformatowany ciąg i nowy wiersz do strumienia tekstu przy użyciu tej samej semantyki co Format(String, ReadOnlySpan<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ę tekstu 4-bajtowej liczby całkowitej bez znaku do strumienia tekstowego, a następnie terminator wiersza.

(Odziedziczone po TextWriter)
WriteLine(UInt64)

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

(Odziedziczone po TextWriter)
WriteLineAsync()

Asynchronicznie zapisuje terminator wiersza 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 podarraj znaków w ciągu, po którym następuje terminator wiersza.

WriteLineAsync(Char[], Int32, Int32)

Asynchronicznie zapisuje podarraj znaków w strumieniu tekstowym, 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, a następnie 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, po którym następuje terminator wiersza.

(Odziedziczone po TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

Asynchronicznie zapisuje ciąg reprezentujący 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, w jaki sposób będą wykonywane oczekiwania na zadania zwrócone z asynchronicznego jednorazowego użytku.

Dotyczy

Zobacz też