StringWriter Classe

Definição

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

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 que você escreva em uma cadeia de caracteres de forma síncrona ou assíncrona. Você pode escrever um caractere de cada vez com o Write(Char)WriteAsync(Char) método ou , uma cadeia de caracteres por vez usando o Write(String) método ou 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 WriteLineAsync métodos.

Observação

Esse tipo implementa a interface IDisposable, mas, na verdade, não tem todos os recursos para descarte. Isso significa que não é necessário descartá-lo chamando diretamente Dispose() ou usando um constructo de linguagem como using (em C#) ou Using (em 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
Ler de um arquivo de texto. Como ler texto de um arquivo
Acrescente texto a um arquivo. Como abrir e acrescentar a um arquivo de log

File.AppendText

FileInfo.AppendText
Obter o tamanho de um arquivo. FileInfo.Length
Obter 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 é gravada para o StringBuilder especificado.

StringWriter(StringBuilder, IFormatProvider)

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

Campos

CoreNewLine

Armazena os caracteres de nova linha usados para esse TextWriter.

(Herdado de TextWriter)

Propriedades

Encoding

Obtém o Encoding no qual 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 de terminador de linha usada pelo TextWriter atual.

(Herdado de TextWriter)

Métodos

Close()

Fecha o StringWriter atual e o fluxo subjacente.

Close()

Fecha o gravador atual e libera os recursos de 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 armazenados em buffer sejam gravados no dispositivo subjacente.

(Herdado de TextWriter)
FlushAsync()

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

FlushAsync()

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

(Herdado de TextWriter)
FlushAsync(CancellationToken)

Limpa, de maneira assíncrona, todos os buffers do gravador atual e faz com que todos os dados armazenados 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 ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetStringBuilder()

Retorna o StringBuilder subjacente.

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 para essa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(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 submatriz 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 da cadeia de caracteres de um intervalo de chars 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 do 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 do 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 do 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 do método Format(String, Object[]).

(Herdado de TextWriter)
Write(StringBuilder)

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

Write(StringBuilder)

Grava um construtor de cadeia 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 submatriz de caracteres na cadeia de caracteres de forma assíncrona.

WriteAsync(Char[], Int32, Int32)

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

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

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

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

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

(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 cadeia de caracteres na cadeia de caracteres.

WriteAsync(StringBuilder, CancellationToken)

Grava de forma assíncrona um construtor de cadeia 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, seguida 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, seguida por um terminador de linha no fluxo.

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

Grava uma submatriz 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, seguida 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 de um intervalo de caracteres na cadeia de caracteres, seguida 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(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 cadeia de caracteres no fluxo de texto, seguida 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 um caractere na cadeia de caracteres de forma assíncrona, seguidos 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 no fluxo.

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

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

WriteLineAsync(Char[], Int32, Int32)

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

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

Grava de forma assíncrona a representação de cadeia de caracteres de uma região da memória de 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 da memória do caractere no fluxo de texto, seguida por um terminador de linha.

(Herdado de TextWriter)
WriteLineAsync(String)

Grava uma cadeia de caracteres na cadeia de caracteres atual de forma assíncrona, 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 cadeia 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 cadeia de caracteres no fluxo de texto, seguida por um terminador de linha.

(Herdado de TextWriter)

Implantações explícitas de interface

IDisposable.Dispose()

Para obter uma descrição desse membro, confira 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 são realizadas.

Aplica-se a

Confira também