Sdílet prostřednictvím


StringWriter Třída

Definice

Implementuje TextWriter pro zápis informací do řetězce. Informace jsou uloženy v podkladové 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
Dědičnost
StringWriter
Dědičnost
Atributy

Příklady

Následující příklad kódu ukazuje vytvoření souvislého odstavce ze skupiny dvojitých mezer vět a následný převod odstavce zpět na původní text.

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

Poznámky

StringWriter umožňuje zapisovat do řetězce synchronně nebo asynchronně. Znak můžete najednou napsat pomocí Write(Char) nebo metody WriteAsync(Char), řetězce najednou pomocí Write(String) nebo metody WriteAsync(String). Kromě toho můžete napsat znak, pole znaků nebo řetězec následovaný ukončovacím znakem řádku asynchronně s jednou z WriteLineAsync metod.

Poznámka

Tento typ implementuje rozhraní IDisposable, ale ve skutečnosti nemá žádné prostředky k odstranění. To znamená, že jeho odstranění přímým voláním Dispose() nebo použitím konstruktoru jazyka, jako je using (v jazyce C#) nebo Using (v jazyce Visual Basic), není nutné.

Následující tabulka uvádí příklady jiných typických nebo souvisejících vstupně-výstupních úloh.

Chcete-li to provést... Podívejte se na příklad v tomto tématu...
Vytvořte textový soubor. Postupy: Zápis textu do souboru
Zápis do textového souboru Postupy: Zápis textu do souboru
Čtení z textového souboru Postupy: Čtení textu ze souboru
Připojte text k souboru. Postupy: Otevření a připojení k souboru protokolu

File.AppendText

FileInfo.AppendText
Získejte velikost souboru. FileInfo.Length
Získá atributy souboru. File.GetAttributes
Nastavte atributy souboru. File.SetAttributes
Určete, jestli soubor existuje. File.Exists
Čtení z binárního souboru Postupy: Čtení a zápis do nově vytvořeného datového souboru
Zápis do binárního souboru Postupy: Čtení a zápis do nově vytvořeného datového souboru

Konstruktory

StringWriter()

Inicializuje novou instanci StringWriter třídy.

StringWriter(IFormatProvider)

Inicializuje novou instanci StringWriter třídy pomocí zadaného ovládacího prvku formátu.

StringWriter(StringBuilder)

Inicializuje novou instanci StringWriter třídy, která zapisuje do zadané StringBuilder.

StringWriter(StringBuilder, IFormatProvider)

Inicializuje novou instanci StringWriter třídy, která zapisuje do zadané StringBuilder a má zadaného zprostředkovatele formátu.

Pole

CoreNewLine

Ukládá znaky nového řádku použité pro tento TextWriter.

(Zděděno od TextWriter)

Vlastnosti

Encoding

Získá Encoding, ve kterém je výstup zapsán.

FormatProvider

Získá objekt, který řídí formátování.

(Zděděno od TextWriter)
NewLine

Získá nebo nastaví ukončovací řetězec řádku používaný aktuálním TextWriter.

(Zděděno od TextWriter)

Metody

Close()

Zavře aktuální StringWriter a podkladový datový proud.

Close()

Zavře aktuální zapisovač a uvolní všechny systémové prostředky přidružené k zapisovači.

(Zděděno od TextWriter)
CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
Dispose()

Uvolní všechny prostředky používané objektem TextWriter.

(Zděděno od TextWriter)
Dispose(Boolean)

Uvolní nespravované prostředky používané StringWriter a volitelně uvolní spravované prostředky.

DisposeAsync()

Asynchronně uvolní všechny prostředky používané objektem TextWriter.

(Zděděno od TextWriter)
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
Flush()

Vymaže všechny vyrovnávací paměti pro aktuální zapisovač a způsobí zápis všech dat uložených do vyrovnávací paměti do podkladového zařízení.

(Zděděno od TextWriter)
FlushAsync()

Asynchronně vymaže všechny vyrovnávací paměti pro aktuální zapisovač a způsobí zápis všech uložených dat do základního zařízení.

FlushAsync()

Asynchronně vymaže všechny vyrovnávací paměti pro aktuální zapisovač a způsobí zápis všech uložených dat do základního zařízení.

(Zděděno od TextWriter)
FlushAsync(CancellationToken)

Asynchronně vymaže všechny vyrovnávací paměti pro aktuální zapisovač a způsobí zápis všech uložených dat do základního zařízení.

(Zděděno od TextWriter)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
GetStringBuilder()

Vrátí podkladovou StringBuilder.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního objektu MarshalByRefObject.

(Zděděno od MarshalByRefObject)
ToString()

Vrátí řetězec obsahující znaky zapsané do aktuálního StringWriter dosud.

Write(Boolean)

Zapíše textovou reprezentaci hodnoty Boolean do textového streamu.

(Zděděno od TextWriter)
Write(Char)

Zapíše znak do řetězce.

Write(Char[])

Zapíše pole znaků do textového streamu.

(Zděděno od TextWriter)
Write(Char[], Int32, Int32)

Zapíše podarray znaků do řetězce.

Write(Decimal)

Zapíše textovou reprezentaci desetinné hodnoty do textového streamu.

(Zděděno od TextWriter)
Write(Double)

Zapíše textovou reprezentaci hodnoty s plovoucí desetinou čárkou 8 bajtů do textového datového proudu.

(Zděděno od TextWriter)
Write(Int32)

Zapíše textovou reprezentaci 4bajtů podepsaného celé číslo do textového streamu.

(Zděděno od TextWriter)
Write(Int64)

Zapíše textovou reprezentaci 8 bajtového celého čísla do textového streamu.

(Zděděno od TextWriter)
Write(Object)

Zapíše textovou reprezentaci objektu do textového datového proudu voláním ToString metody na daném objektu.

(Zděděno od TextWriter)
Write(ReadOnlySpan<Char>)

Zapíše řetězcovou reprezentaci rozsahu znaků do aktuálního řetězce.

Write(ReadOnlySpan<Char>)

Zapíše rozsah znaků do textového streamu.

(Zděděno od TextWriter)
Write(Single)

Zapíše textovou reprezentaci 4bajtů s plovoucí desetinou čárkou do textového streamu.

(Zděděno od TextWriter)
Write(String)

Zapíše řetězec do aktuálního řetězce.

Write(String, Object)

Zapíše formátovaný řetězec do textového streamu pomocí stejné sémantiky jako Format(String, Object) metoda.

(Zděděno od TextWriter)
Write(String, Object, Object)

Zapíše formátovaný řetězec do textového streamu pomocí stejné sémantiky jako Format(String, Object, Object) metoda.

(Zděděno od TextWriter)
Write(String, Object, Object, Object)

Zapíše formátovaný řetězec do textového streamu pomocí stejné sémantiky jako Format(String, Object, Object, Object) metoda.

(Zděděno od TextWriter)
Write(String, Object[])

Zapíše formátovaný řetězec do textového streamu pomocí stejné sémantiky jako Format(String, Object[]) metoda.

(Zděděno od TextWriter)
Write(String, ReadOnlySpan<Object>)

Zapíše formátovaný řetězec do textového streamu pomocí stejné sémantiky jako Format(String, ReadOnlySpan<Object>).

(Zděděno od TextWriter)
Write(StringBuilder)

Zapíše řetězcovou reprezentaci tvůrce řetězců do aktuálního řetězce.

Write(StringBuilder)

Zapíše tvůrce řetězců do textového streamu.

(Zděděno od TextWriter)
Write(UInt32)

Zapíše textovou reprezentaci 4bajtů bez znaménka do textového streamu.

(Zděděno od TextWriter)
Write(UInt64)

Zapíše textovou reprezentaci 8bajtů bez znaménka do textového streamu.

(Zděděno od TextWriter)
WriteAsync(Char)

Zapíše znak do řetězce asynchronně.

WriteAsync(Char)

Zapíše znak do textového streamu asynchronně.

(Zděděno od TextWriter)
WriteAsync(Char[])

Zapíše pole znaků do textového streamu asynchronně.

(Zděděno od TextWriter)
WriteAsync(Char[], Int32, Int32)

Zapíše dílčí pole znaků do řetězce asynchronně.

WriteAsync(Char[], Int32, Int32)

Zapíše dílčí pole znaků do textového streamu asynchronně.

(Zděděno od TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronně zapíše do řetězce oblast paměti znaků.

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronně zapíše oblast paměti znaků do textového streamu.

(Zděděno od TextWriter)
WriteAsync(String)

Zapíše řetězec do aktuálního řetězce asynchronně.

WriteAsync(String)

Zapíše řetězec do textového streamu asynchronně.

(Zděděno od TextWriter)
WriteAsync(StringBuilder, CancellationToken)

Asynchronně zapíše textovou reprezentaci tvůrce řetězců do řetězce.

WriteAsync(StringBuilder, CancellationToken)

Asynchronně zapíše tvůrce řetězců do textového streamu.

(Zděděno od TextWriter)
WriteLine()

Zapíše ukončovací znak řádku do textového streamu.

(Zděděno od TextWriter)
WriteLine(Boolean)

Zapíše textovou reprezentaci Boolean hodnoty do textového datového proudu následovaného ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLine(Char)

Zapíše znak do textového streamu následovaný ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLine(Char[])

Zapíše do textového streamu matici znaků následovanou ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLine(Char[], Int32, Int32)

Zapíše dílčí pole znaků do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLine(Decimal)

Zapíše textovou reprezentaci desetinné hodnoty do textového datového proudu následovanou ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLine(Double)

Zapíše textovou reprezentaci 8 bajtové hodnoty s plovoucí desetinou čárkou do textového datového proudu následovaného ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLine(Int32)

Zapíše textovou reprezentaci 4 bajtového celého čísla do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLine(Int64)

Zapíše textovou reprezentaci 8 bajtového celého čísla do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLine(Object)

Zapíše textovou reprezentaci objektu do textového streamu voláním metody ToString na daném objektu následovanou ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLine(ReadOnlySpan<Char>)

Zapíše textovou reprezentaci rozsahu znaků do řetězce následovaného ukončovacím znakem řádku.

WriteLine(ReadOnlySpan<Char>)

Zapíše textovou reprezentaci rozsahu znaků do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLine(Single)

Zapíše textovou reprezentaci 4bajtů s plovoucí desetinou čárkou do textového datového proudu následovaného ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLine(String)

Zapíše řetězec do textového streamu následovaného ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLine(String, Object)

Zapíše formátovaný řetězec a nový řádek do textového streamu pomocí stejné sémantiky jako metoda Format(String, Object).

(Zděděno od TextWriter)
WriteLine(String, Object, Object)

Zapíše formátovaný řetězec a nový řádek do textového streamu pomocí stejné sémantiky jako metoda Format(String, Object, Object).

(Zděděno od TextWriter)
WriteLine(String, Object, Object, Object)

Zapíše formátovaný řetězec a nový řádek do textového streamu pomocí stejné sémantiky jako Format(String, Object).

(Zděděno od TextWriter)
WriteLine(String, Object[])

Zapíše formátovaný řetězec a nový řádek do textového streamu pomocí stejné sémantiky jako Format(String, Object).

(Zděděno od TextWriter)
WriteLine(String, ReadOnlySpan<Object>)

Zapíše formátovaný řetězec a nový řádek do textového streamu pomocí stejné sémantiky jako Format(String, ReadOnlySpan<Object>).

(Zděděno od TextWriter)
WriteLine(StringBuilder)

Zapíše textovou reprezentaci tvůrce řetězců do řetězce následovaného ukončovacím znakem řádku.

WriteLine(StringBuilder)

Zapíše textovou reprezentaci tvůrce řetězců do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLine(UInt32)

Zapíše textovou reprezentaci 4bajtů bez znaménka do textového datového proudu následovaného ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLine(UInt64)

Zapíše textovou reprezentaci 8bajtů bez znaménka do textového datového proudu následovaného ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLineAsync()

Asynchronně zapíše ukončovací znak řádku do textového streamu.

(Zděděno od TextWriter)
WriteLineAsync(Char)

Asynchronně zapíše znak do řetězce následovaný ukončovacím znakem řádku.

WriteLineAsync(Char)

Asynchronně zapíše znak do textového streamu následovaný ukončovacím znakem řádku.

(Zděděno od TextWriter)
WriteLineAsync(Char[])

Asynchronně zapíše pole znaků do textového datového proudu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLineAsync(Char[], Int32, Int32)

asynchronně zapíše dílčí pole znaků do řetězce následovaného ukončovacím řádkem.

WriteLineAsync(Char[], Int32, Int32)

Asynchronně zapíše dílčí pole znaků do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronně zapíše řetězcovou reprezentaci oblasti paměti znaků do aktuálního řetězce následovanou ukončovacím znakem řádku.

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Asynchronně zapíše textovou reprezentaci oblasti paměti znaku do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLineAsync(String)

Asynchronně zapíše řetězec do aktuálního řetězce následovaného ukončovacím znakem řádku.

WriteLineAsync(String)

Asynchronně zapíše řetězec do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

Asynchronně zapíše řetězcovou reprezentaci tvůrce řetězců do aktuálního řetězce následovaného ukončovacím znakem řádku.

WriteLineAsync(StringBuilder, CancellationToken)

Asynchronně zapíše textovou reprezentaci tvůrce řetězců do textového streamu následovaného ukončovacím řádkem.

(Zděděno od TextWriter)

Explicitní implementace rozhraní

IDisposable.Dispose()

Popis tohoto člena najdete v tématu Dispose().

(Zděděno od TextWriter)

Metody rozšíření

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguruje, jak čekají na úlohy vrácené z asynchronního jednorázového použití.

Platí pro

Viz také