StreamWriter Classe

Definição

Implementa um TextWriter para escrever caracteres num fluxo numa 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 seguinte mostra como usar um StreamWriter objeto para escrever um ficheiro que lista os diretórios na unidade C, e depois usa um StreamReader objeto para ler e mostrar cada nome de diretório. Uma boa prática é usar estes objetos numa using instrução para que os recursos não geridos sejam corretamente descartados. A using instrução chama Dispose automaticamente o objeto quando o código que o está a usar é concluído. O construtor usado neste exemplo não é suportado para uso em aplicações 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

Observações

StreamWriter é concebida para saída de caracteres numa codificação específica, enquanto as classes derivadas de Stream são concebidas para entrada e saída por bytes.

Importante

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

StreamWriter por defeito usa uma instância de UTF8Encoding a menos que especifique o contrário. Esta instância de UTF8Encoding é construída sem uma marca de ordem de bytes (BOM), pelo que o seu GetPreamble método devolve um array de bytes vazio. A codificação UTF-8 por defeito para este construtor lança uma exceção em bytes inválidos. Este comportamento é diferente do comportamento fornecido pelo objeto codificador na Encoding.UTF8 propriedade. Para especificar uma lista de materiais e determinar se uma exceção é lançada em bytes inválidos, use um construtor que aceite um objeto de codificação como parâmetro, como StreamWriter(String, Boolean, Encoding) ou StreamWriter.

Por defeito, a StreamWriter não é seguro para threads. Procura TextWriter.Synchronized um invólucro seguro para fios.

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

Construtores

Name Description
StreamWriter(Stream, Encoding, Int32, Boolean)

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

StreamWriter(Stream, Encoding, Int32)

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

StreamWriter(Stream, Encoding)

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

StreamWriter(Stream)

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

StreamWriter(String, Boolean, Encoding, Int32)

Inicializa uma nova instância da StreamWriter classe para o ficheiro especificado no caminho especificado, usando a codificação e o tamanho do buffer especificados. Se o ficheiro existir, pode ser sobrescrito ou acrescentado. Se o ficheiro não existir, este construtor cria um novo ficheiro.

StreamWriter(String, Boolean, Encoding)

Inicializa uma nova instância da StreamWriter classe para o ficheiro especificado usando a codificação e o tamanho padrão do buffer especificados. Se o ficheiro existir, pode ser sobrescrito ou acrescentado. Se o ficheiro não existir, este construtor cria um novo ficheiro.

StreamWriter(String, Boolean)

Inicializa uma nova instância da StreamWriter classe para o ficheiro especificado usando a codificação e o tamanho do buffer por defeito. Se o ficheiro existir, pode ser sobrescrito ou acrescentado. Se o ficheiro não existir, este construtor cria um novo ficheiro.

StreamWriter(String)

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

Campos

Name Description
CoreNewLine

Armazena os caracteres da nova linha usados para isto TextWriter.

(Herdado de TextWriter)
Null

Fornece um StreamWriter armazenamento sem suporte que pode ser escrito, mas não lido.

Propriedades

Name Description
AutoFlush

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

BaseStream

Obtém o stream subjacente que faz interface com um armazenamento de apoio.

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

(Herdado de TextWriter)

Métodos

Name Description
Close()

Fecha o objeto atual StreamWriter 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)

Faz com que quaisquer dados em buffer sejam escritos no fluxo subjacente, liberta os recursos não geridos usados pelo StreamWriter, e opcionalmente os recursos geridos.

DisposeAsync()

Escreve assíncronamente quaisquer dados em buffer no fluxo subjacente e liberta os recursos não geridos usados pelo StreamWriter.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

liberta os recursos da corrente StreamWriter antes de ser recuperada pelo coletor de lixo.

Flush()

Limpa todos os buffers do autor atual e faz com que quaisquer dados armazenados sejam escritos no fluxo subjacente.

FlushAsync()

Limpa todos os buffers deste fluxo de forma assíncrona 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)
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 cadeia que representa o objeto atual.

(Herdado de Object)
Write(Boolean)

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

(Herdado de TextWriter)
Write(Char)

Escreve uma personagem no stream.

Write(Char[], Int32, Int32)

Escreve um subarray de caracteres no stream.

Write(Char[])

Escreve um array de caracteres no stream.

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 ToString método nesse objeto.

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

Escreve um intervalo de caracteres para o stream.

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 corda no stream.

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 assíncronamente um carácter no fluxo.

WriteAsync(Char[], Int32, Int32)

A Assíncrona escreve um subarray de caracteres no fluxo.

WriteAsync(Char[])

Escreve um array de caracteres no fluxo de texto de forma assíncrona.

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

Escreve assíncronamente uma região de memória de caracteres no fluxo.

WriteAsync(String)

Escreve assíncronamente uma string no fluxo.

WriteLine()

Escreve um terminador de linha no fluxo de texto.

(Herdado de TextWriter)
WriteLine(Boolean)

Escreve a representação textual de um Boolean valor no fluxo de texto, seguida de um terminador de linha.

(Herdado de TextWriter)
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 ToString método nesse objeto, seguido de um terminador de linha.

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

Escreve a representação textual de um espaço de caracteres para o fluxo, seguida 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, seguida de um terminador de linha.

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.

WriteLineAsync(Char)

Escreve assíncronamente um carácter no fluxo, seguido de um terminador de linha.

WriteLineAsync(Char[], Int32, Int32)

De forma assíncrona, escreve um subarray de caracteres no fluxo, 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)

De forma assíncrona, escreve a representação de texto de uma região de memória de caracteres no fluxo, seguida de um terminador de linha.

WriteLineAsync(String)

Escreve assíncronamente uma cadeia no fluxo, 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.

Aplica-se a

Ver também