StringWriter Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Implementa a TextWriter para escrever informação numa cadeia. A informação é armazenada num subjacente 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
- Herança
- Herança
- Atributos
Exemplos
O exemplo de código seguinte demonstra a criação de um parágrafo contínuo a partir de um grupo de frases com espaçamento duplo, e depois a conversão do parágrafo de volta ao texto original.
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
Observações
StringWriter permite escrever numa string de forma síncrona ou assíncrona. Pode escrever um carácter de cada vez com o Write(Char) ou o WriteAsync(Char) método, uma cadeia de caracteres de cada vez usando o Write(String) ou o WriteAsync(String) método. Além disso, pode escrever um carácter, um array de caracteres ou uma string seguida do terminador de linha de forma assíncrona com um dos WriteLineAsync métodos.
Note
Este tipo implementa a IDisposable interface, mas na verdade não tem recursos para eliminar. Isto significa que não é necessário eliminá-lo chamando diretamente Dispose() ou usando uma construção de linguagem como using (em C#) ou Using (em Visual Basic).
A tabela seguinte lista exemplos de outras tarefas típicas ou relacionadas de E/S.
| Para fazer isso... | Veja o exemplo neste tópico... |
|---|---|
| Crie um arquivo de texto. | Como: Gravar texto em um arquivo |
| Escreve num ficheiro de texto. | Como: Gravar texto em um arquivo |
| Lido de um ficheiro de texto. | Como: Ler texto de um arquivo |
| Adicione texto a um ficheiro. |
Como: Abrir e anexar a um arquivo de log File.AppendText FileInfo.AppendText |
| Obtém o tamanho de um ficheiro. | FileInfo.Length |
| Obtenha as características de um ficheiro. | File.GetAttributes |
| Defina os atributos de um ficheiro. | File.SetAttributes |
| Determina se existe um ficheiro. | File.Exists |
| Lê a partir de um ficheiro binário. | Como: Ler e gravar em um arquivo de dados recém-criado |
| Escreve num ficheiro binário. | Como: Ler e gravar em um arquivo de dados recém-criado |
Construtores
| Name | Description |
|---|---|
| StringWriter() |
Inicializa uma nova instância da StringWriter classe. |
| StringWriter(IFormatProvider) |
Inicializa uma nova instância da StringWriter classe com o controlo de formato especificado. |
| StringWriter(StringBuilder, IFormatProvider) |
Inicializa uma nova instância da StringWriter classe que escreve no especificado StringBuilder e tem o fornecedor de formato especificado. |
| StringWriter(StringBuilder) |
Inicializa uma nova instância da StringWriter classe que escreve no especificado StringBuilder. |
Campos
| Name | Description |
|---|---|
| CoreNewLine |
Armazena os caracteres da nova linha usados para isto |
Propriedades
| Name | Description |
|---|---|
| Encoding |
Obtém o Encoding onde a saída é escrita. |
| FormatProvider |
Recebe um objeto que controla a formatação. (Herdado de TextWriter) |
| NewLine |
Obtém ou define a cadeia de terminadores de linha usada pela corrente |
Métodos
| Name | Description |
|---|---|
| Close() |
Fecha a corrente StringWriter e o fluxo subjacente. |
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Dispose() |
Liberta todos os recursos usados pelo TextWriter objeto. (Herdado de TextWriter) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo StringWriter e opcionalmente liberta os recursos geridos. |
| DisposeAsync() |
A libertação assíncrona de todos os recursos usados pelo TextWriter objeto. (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 quaisquer dados em buffer sejam escritos no dispositivo subjacente. (Herdado de TextWriter) |
| FlushAsync() |
A-síncrono, limpa todos os buffers para o escritor atual e faz com que quaisquer dados em buffer sejam escritos no dispositivo subjacente. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetLifetimeService() |
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetStringBuilder() |
Devolve o subjacente StringBuilder. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InitializeLifetimeService() |
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| ToString() |
Devolve uma string contendo os caracteres escritos na corrente |
| Write(Boolean) |
Escreve a representação textual de um |
| Write(Char) |
Escreve um carácter na cadeia. |
| Write(Char[], Int32, Int32) |
Escreve um subarray de caracteres na cadeia. |
| Write(Char[]) |
Escreve um array de caracteres no fluxo de texto. (Herdado de TextWriter) |
| Write(Decimal) |
Escreve a representação textual de um valor decimal no fluxo de texto. (Herdado de TextWriter) |
| Write(Double) |
Grava a representação textual de um valor de vírgula flutuante de 8 bytes no fluxo de texto. (Herdado de TextWriter) |
| Write(Int32) |
Escreve a representação textual de um inteiro com sinal de 4 bytes no fluxo de texto. (Herdado de TextWriter) |
| Write(Int64) |
Escreve a representação textual de um inteiro com sinal de 8 bytes no fluxo de texto. (Herdado de TextWriter) |
| Write(Object) |
Escreve a representação textual de um objeto no fluxo de texto chamando o |
| Write(ReadOnlySpan<Char>) |
Escreve a representação da cadeia de um intervalo de caracteres na cadeia atual. |
| Write(Single) |
Grava a representação textual de um valor de vírgula flutuante de 4 bytes no fluxo de texto. (Herdado de TextWriter) |
| Write(String, Object, Object, Object) |
Escreve uma cadeia formatada no fluxo de texto, usando a mesma semântica do Format(String, Object, Object, Object) método. (Herdado de TextWriter) |
| Write(String, Object, Object) |
Escreve uma string formatada no fluxo de texto usando a mesma semântica do Format(String, Object, Object) método. (Herdado de TextWriter) |
| Write(String, Object) |
Escreve uma cadeia formatada no fluxo de texto, usando a mesma semântica do Format(String, Object) método. (Herdado de TextWriter) |
| Write(String, Object[]) |
Escreve uma cadeia formatada no fluxo de texto, usando a mesma semântica do Format(String, Object[]) método. (Herdado de TextWriter) |
| Write(String) |
Escreve uma cadeia na cadeia atual. |
| Write(UInt32) |
Escreve a representação textual de um inteiro sem sinal de 4 bytes no fluxo de texto. (Herdado de TextWriter) |
| Write(UInt64) |
Escreve a representação textual de um inteiro sem sinal de 8 bytes no fluxo de texto. (Herdado de TextWriter) |
| WriteAsync(Char) |
Escreve um carácter na cadeia de forma assíncrona. |
| WriteAsync(Char[], Int32, Int32) |
Escreve um subarray de caracteres na string de forma assíncrona. |
| WriteAsync(Char[]) |
Escreve um array de caracteres no fluxo de texto de forma assíncrona. (Herdado de TextWriter) |
| WriteAsync(ReadOnlyMemory<Char>, CancellationToken) |
De forma assíncrona, escreve uma região de memória de caracteres na cadeia. |
| WriteAsync(String) |
Escreve uma string na string atual de forma assíncrona. |
| WriteLine() |
Escreve um terminador de linha no fluxo de texto. (Herdado de TextWriter) |
| WriteLine(Boolean) |
Escreve a representação textual de um |
| WriteLine(Char) |
Escreve um carácter no fluxo de texto, seguido de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(Char[], Int32, Int32) |
Escreve um subarray de caracteres no fluxo de texto, seguido de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(Char[]) |
Escreve um array de caracteres no fluxo de texto, seguido de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(Decimal) |
Escreve a representação textual de um valor decimal no fluxo de texto, seguida de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(Double) |
Escreve a representação de texto de um valor de ponto flutuante de 8 bytes no fluxo de texto, seguida de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(Int32) |
Escreve a representação textual de um inteiro com sinal de 4 bytes no fluxo de texto, seguida de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(Int64) |
Escreve a representação textual de um inteiro com sinal de 8 bytes no fluxo de texto, seguida de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(Object) |
Escreve a representação textual de um objeto no fluxo de texto, chamando o |
| WriteLine(ReadOnlySpan<Char>) |
Escreve a representação do texto um intervalo de caracteres na cadeia, seguido de um terminador de linha. |
| WriteLine(Single) |
Grava a representação de texto de um valor de ponto flutuante de 4 bytes no fluxo de texto, seguida de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(String, Object, Object, Object) |
Escreve uma cadeia formatada e uma nova linha no fluxo de texto, usando a mesma semântica que Format(String, Object). (Herdado de TextWriter) |
| WriteLine(String, Object, Object) |
Escreve uma string formatada e uma nova linha no fluxo de texto, usando a mesma semântica do Format(String, Object, Object) método. (Herdado de TextWriter) |
| WriteLine(String, Object) |
Escreve uma string formatada e uma nova linha no fluxo de texto, usando a mesma semântica do Format(String, Object) método. (Herdado de TextWriter) |
| WriteLine(String, Object[]) |
Escreve uma cadeia formatada e uma nova linha no fluxo de texto, usando a mesma semântica que Format(String, Object). (Herdado de TextWriter) |
| WriteLine(String) |
Escreve uma cadeia no fluxo de texto, seguida de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(UInt32) |
Escreve a representação de texto de um inteiro sem sinal de 4 bytes no fluxo de texto, seguida de um terminador de linha. (Herdado de TextWriter) |
| WriteLine(UInt64) |
Escreve a representação de texto de um inteiro sem sinal de 8 bytes no fluxo de texto, seguida de um terminador de linha. (Herdado de TextWriter) |
| WriteLineAsync() |
Escreve assíncronamente um terminador de linha no fluxo de texto. (Herdado de TextWriter) |
| WriteLineAsync(Char) |
Escreve assíncronamente um carácter na cadeia, seguido de um terminador de linha. |
| WriteLineAsync(Char[], Int32, Int32) |
escreve assíncronamente um subarray de caracteres na cadeia, seguido de um terminador de linha. |
| WriteLineAsync(Char[]) |
Escreve assíncronamente um array de caracteres no fluxo de texto, seguido de um terminador de linha. (Herdado de TextWriter) |
| WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken) |
Escreve assíncronamente a representação da cadeia da região de memória dos caracteres na cadeia atual, seguida de um terminador de linha. |
| WriteLineAsync(String) |
Escreve assíncronamente uma cadeia na cadeia atual, seguida de um terminador de linha. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Para uma descrição deste elemento, veja Dispose(). (Herdado de TextWriter) |
Métodos da Extensão
| Name | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Configura como aguarda nas tarefas devolvidas de um descartável assíncrono será realizada. |