Partilhar via


StringWriter Classe

Definição

Implementa um TextWriter para gravar informações em uma cadeia de caracteres. As informações são armazenadas em um StringBuildersubjacente.

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
Herança
StringWriter
Herança
Atributos

Exemplos

O exemplo de código a seguir demonstra a criação de um parágrafo contínuo de um grupo de frases com espaçamento duplo e, em seguida, a conversão do parágrafo de volta para o texto original.

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

Comentários

StringWriter permite gravar em uma cadeia de caracteres de forma síncrona ou assíncrona. Você pode escrever um caractere de cada vez com o método Write(Char) ou WriteAsync(Char), uma cadeia de caracteres por vez usando o Write(String) ou o método WriteAsync(String). Além disso, você pode escrever um caractere, uma matriz de caracteres ou uma cadeia de caracteres seguida pelo terminador de linha de forma assíncrona com um dos métodos WriteLineAsync.

Nota

Esse tipo implementa a interface IDisposable, mas não tem recursos para descartar. Isso significa que não é necessário descartá-lo chamando diretamente Dispose() ou usando um constructo de idioma, como using (em C#) ou Using (no Visual Basic).

A tabela a seguir lista exemplos de outras tarefas de E/S típicas ou relacionadas.

Para fazer isso... Veja o exemplo neste tópico...
Crie um arquivo de texto. Como gravar texto em um arquivo
Gravar em um arquivo de texto. Como gravar texto em um arquivo
Leitura de um arquivo de texto. Como ler texto de um arquivo
Acrescente o texto a um arquivo. Como abrir e acrescentar a um arquivo de log

File.AppendText

FileInfo.AppendText
Obtenha o tamanho de um arquivo. FileInfo.Length
Obtenha os atributos de um arquivo. File.GetAttributes
Defina os atributos de um arquivo. File.SetAttributes
Determine se existe um arquivo. File.Exists
Ler de um arquivo binário. Como ler e gravar em um arquivo de dados recém-criado
Gravar em um arquivo binário. Como ler e gravar em um arquivo de dados recém-criado

Construtores

StringWriter()

Inicializa uma nova instância da classe StringWriter.

StringWriter(IFormatProvider)

Inicializa uma nova instância da classe StringWriter com o controle de formato especificado.

StringWriter(StringBuilder)

Inicializa uma nova instância da classe StringWriter que grava no StringBuilderespecificado.

StringWriter(StringBuilder, IFormatProvider)

Inicializa uma nova instância da classe StringWriter que grava no StringBuilder especificado e tem o provedor de formato especificado.

Campos

CoreNewLine

Armazena os caracteres de nova linha usados para este TextWriter.

(Herdado de TextWriter)

Propriedades

Encoding

Obtém o Encoding em que a saída é gravada.

FormatProvider

Obtém um objeto que controla a formatação.

(Herdado de TextWriter)
NewLine

Obtém ou define a cadeia de caracteres do terminador de linha usada pelo TextWriteratual.

(Herdado de TextWriter)

Métodos

Close()

Fecha o StringWriter atual e o fluxo subjacente.

Close()

Fecha o gravador atual e libera todos os recursos do sistema associados ao gravador.

(Herdado de TextWriter)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Libera todos os recursos usados pelo objeto TextWriter.

(Herdado de TextWriter)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo StringWriter e, opcionalmente, libera os recursos gerenciados.

DisposeAsync()

Libera de forma assíncrona todos os recursos usados pelo objeto TextWriter.

(Herdado de TextWriter)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Flush()

Limpa todos os buffers do gravador atual e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente.

(Herdado de TextWriter)
FlushAsync()

Limpa de forma assíncrona todos os buffers do gravador atual e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente.

FlushAsync()

Limpa de forma assíncrona todos os buffers do gravador atual e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente.

(Herdado de TextWriter)
FlushAsync(CancellationToken)

Limpa de forma assíncrona todos os buffers do gravador atual e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente.

(Herdado de TextWriter)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetStringBuilder()

Retorna o StringBuildersubjacente .

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
ToString()

Retorna uma cadeia de caracteres que contém os caracteres gravados no StringWriter atual até agora.

Write(Boolean)

Grava a representação de texto de um valor Boolean no fluxo de texto.

(Herdado de TextWriter)
Write(Char)

Grava um caractere na cadeia de caracteres.

Write(Char[])

Grava uma matriz de caracteres no fluxo de texto.

(Herdado de TextWriter)
Write(Char[], Int32, Int32)

Grava uma subarray de caracteres na cadeia de caracteres.

Write(Decimal)

Grava a representação de texto de um valor decimal no fluxo de texto.

(Herdado de TextWriter)
Write(Double)

Grava a representação de texto de um valor de ponto flutuante de 8 bytes no fluxo de texto.

(Herdado de TextWriter)
Write(Int32)

Grava a representação de texto de um inteiro com sinal de 4 bytes no fluxo de texto.

(Herdado de TextWriter)
Write(Int64)

Grava a representação de texto de um inteiro com sinal de 8 bytes no fluxo de texto.

(Herdado de TextWriter)
Write(Object)

Grava a representação de texto de um objeto no fluxo de texto chamando o método ToString nesse objeto.

(Herdado de TextWriter)
Write(ReadOnlySpan<Char>)

Grava a representação de cadeia de caracteres de um intervalo de caracteres na cadeia de caracteres atual.

Write(ReadOnlySpan<Char>)

Grava um intervalo de caracteres no fluxo de texto.

(Herdado de TextWriter)
Write(Single)

Grava a representação de texto de um valor de ponto flutuante de 4 bytes no fluxo de texto.

(Herdado de TextWriter)
Write(String)

Grava uma cadeia de caracteres na cadeia de caracteres atual.

Write(String, Object)

Grava uma cadeia de caracteres formatada no fluxo de texto usando a mesma semântica que o método Format(String, Object).

(Herdado de TextWriter)
Write(String, Object, Object)

Grava uma cadeia de caracteres formatada no fluxo de texto usando a mesma semântica que o método Format(String, Object, Object).

(Herdado de TextWriter)
Write(String, Object, Object, Object)

Grava uma cadeia de caracteres formatada no fluxo de texto usando a mesma semântica que o método Format(String, Object, Object, Object).

(Herdado de TextWriter)
Write(String, Object[])

Grava uma cadeia de caracteres formatada no fluxo de texto usando a mesma semântica que o método Format(String, Object[]).

(Herdado de TextWriter)
Write(String, ReadOnlySpan<Object>)

Grava uma cadeia de caracteres formatada no fluxo de texto usando a mesma semântica que Format(String, ReadOnlySpan<Object>).

(Herdado de TextWriter)
Write(StringBuilder)

Grava a representação de cadeia de caracteres de um construtor de cadeia de caracteres na cadeia de caracteres atual.

Write(StringBuilder)

Grava um construtor de cadeias de caracteres no fluxo de texto.

(Herdado de TextWriter)
Write(UInt32)

Grava a representação de texto de um inteiro sem sinal de 4 bytes no fluxo de texto.

(Herdado de TextWriter)
Write(UInt64)

Grava a representação de texto de um inteiro sem sinal de 8 bytes no fluxo de texto.

(Herdado de TextWriter)
WriteAsync(Char)

Grava um caractere na cadeia de caracteres de forma assíncrona.

WriteAsync(Char)

Grava um caractere no fluxo de texto de forma assíncrona.

(Herdado de TextWriter)
WriteAsync(Char[])

Grava uma matriz de caracteres no fluxo de texto de forma assíncrona.

(Herdado de TextWriter)
WriteAsync(Char[], Int32, Int32)

Grava uma subarray de caracteres na cadeia de caracteres de forma assíncrona.

WriteAsync(Char[], Int32, Int32)

Grava uma subarray de caracteres no fluxo de texto de forma assíncrona.

(Herdado de TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Grava de forma assíncrona uma região de memória de caracteres na cadeia de caracteres.

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Grava de forma assíncrona uma região de memória de caractere no fluxo de texto.

(Herdado de TextWriter)
WriteAsync(String)

Grava uma cadeia de caracteres na cadeia de caracteres atual de forma assíncrona.

WriteAsync(String)

Grava uma cadeia de caracteres no fluxo de texto de forma assíncrona.

(Herdado de TextWriter)
WriteAsync(StringBuilder, CancellationToken)

Grava de forma assíncrona a representação de texto de um construtor de cadeias de caracteres na cadeia de caracteres.

WriteAsync(StringBuilder, CancellationToken)

Grava de forma assíncrona um construtor de cadeias de caracteres no fluxo de texto.

(Herdado de TextWriter)
WriteLine()

Grava um terminador de linha no fluxo de texto.

(Herdado de TextWriter)
WriteLine(Boolean)

Grava a representação de texto de um valor Boolean no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Char)

Grava um caractere no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Char[])

Grava uma matriz de caracteres no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Char[], Int32, Int32)

Grava uma subarray de caracteres no fluxo de texto, seguida por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Decimal)

Grava a representação de texto de um valor decimal no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Double)

Grava a representação de texto de um valor de ponto flutuante de 8 bytes no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Int32)

Grava a representação de texto de um inteiro com sinal de 4 bytes no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Int64)

Grava a representação de texto de um inteiro com sinal de 8 bytes no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Object)

Grava a representação de texto de um objeto no fluxo de texto chamando o método ToString nesse objeto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(ReadOnlySpan<Char>)

Grava a representação de texto em um intervalo de caracteres na cadeia de caracteres, seguido por um terminador de linha.

WriteLine(ReadOnlySpan<Char>)

Grava a representação de texto de um intervalo de caracteres no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(Single)

Grava a representação de texto de um valor de ponto flutuante de 4 bytes no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(String)

Grava uma cadeia de caracteres no fluxo de texto, seguida por um terminador de linha.

(Herdado de TextWriter)
WriteLine(String, Object)

Grava uma cadeia de caracteres formatada e uma nova linha no fluxo de texto, usando a mesma semântica que o método Format(String, Object).

(Herdado de TextWriter)
WriteLine(String, Object, Object)

Grava uma cadeia de caracteres formatada e uma nova linha no fluxo de texto, usando a mesma semântica que o método Format(String, Object, Object).

(Herdado de TextWriter)
WriteLine(String, Object, Object, Object)

Grava uma cadeia de caracteres formatada e uma nova linha no fluxo de texto, usando a mesma semântica que Format(String, Object).

(Herdado de TextWriter)
WriteLine(String, Object[])

Grava uma cadeia de caracteres formatada e uma nova linha no fluxo de texto, usando a mesma semântica que Format(String, Object).

(Herdado de TextWriter)
WriteLine(String, ReadOnlySpan<Object>)

Grava uma cadeia de caracteres formatada e uma nova linha no fluxo de texto, usando a mesma semântica que Format(String, ReadOnlySpan<Object>).

(Herdado de TextWriter)
WriteLine(StringBuilder)

Grava a representação de texto de um construtor de cadeia de caracteres na cadeia de caracteres, seguida por um terminador de linha.

WriteLine(StringBuilder)

Grava a representação de texto de um construtor de cadeias de caracteres no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(UInt32)

Grava a representação de texto de um inteiro sem sinal de 4 bytes no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLine(UInt64)

Grava a representação de texto de um inteiro sem sinal de 8 bytes no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLineAsync()

Grava de forma assíncrona um terminador de linha no fluxo de texto.

(Herdado de TextWriter)
WriteLineAsync(Char)

Grava de forma assíncrona um caractere na cadeia de caracteres, seguido por um terminador de linha.

WriteLineAsync(Char)

Grava de forma assíncrona um caractere no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLineAsync(Char[])

Grava de forma assíncrona uma matriz de caracteres no fluxo de texto, seguida por um terminador de linha.

(Herdado de TextWriter)
WriteLineAsync(Char[], Int32, Int32)

Grava de forma assíncrona uma subarray de caracteres na cadeia de caracteres, seguida por um terminador de linha.

WriteLineAsync(Char[], Int32, Int32)

Grava de forma assíncrona uma subarray de caracteres no fluxo de texto, seguida por um terminador de linha.

(Herdado de TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Grava de forma assíncrona a representação da cadeia de caracteres da região de memória dos caracteres na cadeia de caracteres atual, seguida por um terminador de linha.

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Grava de forma assíncrona a representação de texto de uma região de memória de caractere no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)
WriteLineAsync(String)

Grava de forma assíncrona uma cadeia de caracteres na cadeia de caracteres atual, seguida por um terminador de linha.

WriteLineAsync(String)

Grava de forma assíncrona uma cadeia de caracteres no fluxo de texto, seguida por um terminador de linha.

(Herdado de TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

Grava de forma assíncrona a representação de cadeia de caracteres do construtor de cadeias de caracteres na cadeia de caracteres atual, seguida por um terminador de linha.

WriteLineAsync(StringBuilder, CancellationToken)

Grava de forma assíncrona a representação de texto de um construtor de cadeias de caracteres no fluxo de texto, seguido por um terminador de linha.

(Herdado de TextWriter)

Implantações explícitas de interface

IDisposable.Dispose()

Para obter uma descrição desse membro, consulte Dispose().

(Herdado de TextWriter)

Métodos de Extensão

ConfigureAwait(IAsyncDisposable, Boolean)

Configura como as esperas nas tarefas retornadas de um descartável assíncrono serão executadas.

Aplica-se a

Confira também