Partilhar via


StreamWriter Classe

Definição

Implementa um TextWriter para escrever caracteres em um fluxo em uma codificação específica.

public ref class StreamWriter : System::IO::TextWriter
public class StreamWriter : System.IO.TextWriter
[System.Serializable]
public class StreamWriter : System.IO.TextWriter
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StreamWriter : System.IO.TextWriter
type StreamWriter = class
    inherit TextWriter
[<System.Serializable>]
type StreamWriter = class
    inherit TextWriter
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StreamWriter = class
    inherit TextWriter
Public Class StreamWriter
Inherits TextWriter
Herança
StreamWriter
Herança
Atributos

Exemplos

O exemplo a seguir mostra como usar um objeto StreamWriter para gravar um arquivo que lista os diretórios na unidade C e, em seguida, usa um objeto StreamReader para ler e exibir cada nome de diretório. Uma boa prática é usar esses objetos em uma instrução using para que os recursos não gerenciados sejam descartados corretamente. A instrução using chama automaticamente Dispose no objeto quando o código que está usando ele for concluído. Não há suporte para o construtor usado neste exemplo para uso nos Aplicativos da Windows Store.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace StreamReadWrite
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get the directories currently on the C drive.
            DirectoryInfo[] cDirs = new DirectoryInfo(@"c:\").GetDirectories();

            // Write each directory name to a file.
            using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
            {
                foreach (DirectoryInfo dir in cDirs)
                {
                    sw.WriteLine(dir.Name);
                }
            }

            // Read and show each line from the file.
            string line = "";
            using (StreamReader sr = new StreamReader("CDriveDirs.txt"))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
    }
}
Imports System.IO
Class Program

    Shared Sub Main()

        ' Get the directories currently on the C drive.
        Dim cDirs As DirectoryInfo() = New DirectoryInfo("c:\").GetDirectories()

        ' Write each directory name to a file.
        Using sw As StreamWriter = New StreamWriter("CDriveDirs.txt")
            For Each Dir As DirectoryInfo In cDirs
                sw.WriteLine(Dir.Name)
            Next
        End Using

        'Read and show each line from the file.
        Dim line As String = ""
        Using sr As StreamReader = New StreamReader("CDriveDirs.txt")
            Do
                line = sr.ReadLine()
                Console.WriteLine(line)
            Loop Until line Is Nothing
        End Using


    End Sub

End Class

Comentários

StreamWriter foi projetado para a saída de caractere em uma codificação específica, enquanto as classes derivadas de Stream são projetadas para entrada e saída de bytes.

Importante

Esse tipo implementa a interface IDisposable. Quando terminar de usar o tipo, você deverá descartá-lo direta ou indiretamente. Para descartar o tipo diretamente, chame seu método Dispose em um bloco de try/catch. Para descartá-lo indiretamente, use um constructo de linguagem como using (em C#) ou Using (no Visual Basic). Para obter mais informações, consulte a seção "Usando um objeto que implementa idisposable" no tópico da interface IDisposable.

StreamWriter usa como padrão o uso de uma instância de UTF8Encoding, a menos que especificado o contrário. Essa instância de UTF8Encoding é construída sem uma marca de ordem de bytes (BOM), de modo que seu método GetPreamble retorna uma matriz de bytes vazia. A codificação UTF-8 padrão para esse construtor gera uma exceção em bytes inválidos. Esse comportamento é diferente do comportamento fornecido pelo objeto de codificação na propriedade Encoding.UTF8. Para especificar um BOM e determinar se uma exceção é gerada em bytes inválidos, use um construtor que aceite um objeto de codificação como um parâmetro, como StreamWriter(String, Boolean, Encoding) ou StreamWriter.

Por padrão, um StreamWriter não é thread-safe. Consulte TextWriter.Synchronized para obter um wrapper thread-safe.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Construtores

StreamWriter(Stream)

Inicializa uma nova instância da classe StreamWriter para o fluxo especificado usando a codificação UTF-8 e o tamanho do buffer padrão.

StreamWriter(Stream, Encoding)

Inicializa uma nova instância da classe StreamWriter para o fluxo especificado usando a codificação especificada e o tamanho do buffer padrão.

StreamWriter(Stream, Encoding, Int32)

Inicializa uma nova instância da classe StreamWriter para o fluxo especificado usando a codificação e o tamanho do buffer especificados.

StreamWriter(Stream, Encoding, Int32, Boolean)

Inicializa uma nova instância da classe StreamWriter para o fluxo especificado usando a codificação especificada e o tamanho do buffer e, opcionalmente, deixa o fluxo aberto.

StreamWriter(String)

Inicializa uma nova instância da classe StreamWriter para o arquivo especificado usando a codificação padrão e o tamanho do buffer.

StreamWriter(String, Boolean)

Inicializa uma nova instância da classe StreamWriter para o arquivo especificado usando a codificação padrão e o tamanho do buffer. Se o arquivo existir, ele poderá ser substituído ou acrescentado. Se o arquivo não existir, esse construtor criará um novo arquivo.

StreamWriter(String, Boolean, Encoding)

Inicializa uma nova instância da classe StreamWriter para o arquivo especificado usando a codificação especificada e o tamanho do buffer padrão. Se o arquivo existir, ele poderá ser substituído ou acrescentado. Se o arquivo não existir, esse construtor criará um novo arquivo.

StreamWriter(String, Boolean, Encoding, Int32)

Inicializa uma nova instância da classe StreamWriter para o arquivo especificado no caminho especificado, usando a codificação especificada e o tamanho do buffer. Se o arquivo existir, ele poderá ser substituído ou acrescentado. Se o arquivo não existir, esse construtor criará um novo arquivo.

StreamWriter(String, Encoding, FileStreamOptions)

Inicializa uma nova instância da classe StreamWriter para o arquivo especificado, usando a codificação especificada e configurada com o objeto FileStreamOptions especificado.

StreamWriter(String, FileStreamOptions)

Inicializa uma nova instância da classe StreamWriter para o arquivo especificado, usando a codificação padrão e configurada com o objeto FileStreamOptions especificado.

Campos

CoreNewLine

Armazena os caracteres de nova linha usados para este TextWriter.

(Herdado de TextWriter)
Null

Fornece um StreamWriter sem repositório de backup que pode ser gravado, mas não lido.

Propriedades

AutoFlush

Obtém ou define um valor que indica se o StreamWriter liberará seu buffer para o fluxo subjacente após cada chamada para Write(Char).

BaseStream

Obtém o fluxo subjacente que é adaptado com um repositório de backup.

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 objeto StreamWriter 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)

Faz com que todos os dados em buffer sejam gravados no fluxo subjacente, libera os recursos não gerenciados usados pelo StreamWritere, opcionalmente, os recursos gerenciados.

DisposeAsync()

Grava de forma assíncrona todos os dados em buffer no fluxo subjacente e libera os recursos não gerenciados usados pelo StreamWriter.

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)
Finalize()

Libera os recursos do StreamWriter atual antes de ser recuperado pelo coletor de lixo.

Flush()

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

FlushAsync()

Limpa todos os buffers desse fluxo de forma assíncrona 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 todos os buffers desse fluxo de forma assíncrona e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente.

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)
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 representa o objeto atual.

(Herdado de Object)
Write(Boolean)

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

(Herdado de TextWriter)
Write(Char)

Grava um caractere no fluxo.

Write(Char[])

Grava uma matriz de caracteres no fluxo.

Write(Char[], Int32, Int32)

Grava uma subarray de caracteres no fluxo.

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 um intervalo de caracteres no fluxo.

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 no fluxo.

Write(String, Object)

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

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 usando a mesma semântica que o método Format(String, Object, Object).

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 usando a mesma semântica que o método Format(String, Object, Object, Object).

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 usando a mesma semântica que o método Format(String, Object[]).

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 usando a mesma semântica que Format(String, ReadOnlySpan<Object>).

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 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 de forma assíncrona um caractere no fluxo.

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 de forma assíncrona uma subarray de caracteres no fluxo.

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 caractere no fluxo.

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 de forma assíncrona uma cadeia de caracteres no fluxo.

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 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 de um intervalo de caracteres no fluxo, 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, seguida por um terminador de linha.

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, usando a mesma semântica que o método Format(String, Object).

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, usando a mesma semântica que o método Format(String, Object, Object).

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, usando a mesma semântica que Format(String, Object).

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, usando a mesma semântica que Format(String, Object).

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, usando a mesma semântica que Format(String, ReadOnlySpan<Object>).

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 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.

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 no fluxo, 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 no fluxo, 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 de texto de uma região de memória de caractere no fluxo, seguido 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 no fluxo, 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 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