Compartilhar via


StreamReader Classe

Definição

Implementa um TextReader que lê caracteres de um fluxo de bytes em uma codificação específica.

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

Exemplos

O exemplo a seguir usa uma instância de leitura de StreamReader texto de um arquivo. Não há suporte para o construtor usado neste exemplo para uso nos Aplicativos da Windows Store.

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        try
        {
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("TestFile.txt"))
            {
                string line;
                // Read and display lines from the file until the end of
                // the file is reached.
                while ((line = sr.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (Exception e)
        {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
        }
    }
}
Imports System.IO

Class Test
    Public Shared Sub Main()
        Try
            ' Create an instance of StreamReader to read from a file.
            Dim sr As StreamReader = New StreamReader("TestFile.txt")
            Dim line As String
            ' Read and display the lines from the file until the end 
            ' of the file is reached.
            Do
                line = sr.ReadLine()
                Console.WriteLine(Line)
            Loop Until line Is Nothing
            sr.Close()
        Catch E As Exception
            ' Let the user know what went wrong.
            Console.WriteLine("The file could not be read:")
            Console.WriteLine(E.Message)
        End Try
    End Sub
End Class

O exemplo a seguir cria uma instância de um StreamReader objeto e chama seu ReadAsync método para ler um arquivo de forma assíncrona.

using System;
using System.IO;
using System.Threading.Tasks;

class Example
{
    static async Task Main()
    {
        await ReadAndDisplayFilesAsync();
    }

    static async Task ReadAndDisplayFilesAsync()
    {
        String filename = "TestFile1.txt";
        Char[] buffer;

        using (var sr = new StreamReader(filename)) {
            buffer = new Char[(int)sr.BaseStream.Length];
            await sr.ReadAsync(buffer, 0, (int)sr.BaseStream.Length);
        }

        Console.WriteLine(new String(buffer));
    }
}
// The example displays the following output:
//       This is the first line of text in a relatively short file.
//       This is the second line.
//       This is the third line.
//       This is the fourth and final line.
Imports System.IO
Imports System.Threading.Tasks

Module Example
    Public Sub Main()
        ReadAndDisplayFilesAsync()
    End Sub

    Private Async Sub ReadAndDisplayFilesAsync()
        Dim filename As String = "TestFile1.txt"
        Dim buffer() As Char
        
        Using sr As New StreamReader(filename)
            ReDim buffer(CInt(sr.BaseStream.Length))
            Await sr.ReadAsync(buffer, 0, CInt(sr.BaseStream.Length))
        End Using

        Console.WriteLine(New String(buffer))
    End Sub
End Module
' The example displays the following output:
'       This is the first line of text in a relatively short file.
'       This is the second line.
'       This is the third line.
'       This is the fourth and final line.

Comentários

StreamReader foi projetado para entrada de caractere em uma codificação específica, enquanto a Stream classe foi projetada para entrada e saída de bytes. Use StreamReader para ler linhas de informações de um arquivo de texto padrão.

Importante

Esse tipo implementa a IDisposable interface. Quando terminar de usar esse tipo ou objeto, você deverá descartá-lo de forma direta ou indireta. Para descartar o tipo diretamente, chame o método Dispose dele em um bloco 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 IDisposable interface.

StreamReader usa como padrão a codificação UTF-8, a menos que especificado de outra forma, em vez de usar a página de código ANSI para o sistema atual. O UTF-8 manipula os caracteres Unicode corretamente e fornece resultados consistentes em versões localizadas do sistema operacional. Se você receber a codificação de caractere atual usando a CurrentEncoding propriedade, o valor não será confiável até depois do primeiro Read método, já que a detecção automática de codificação não será feita até a primeira chamada a um Read método.

Por padrão, um StreamReader thread não é seguro. Consulte TextReader.Synchronized um wrapper thread-safe.

O Read(Char[], Int32, Int32) método e Write(Char[], Int32, Int32) o método sobrecarregam a leitura e gravação do número de caracteres especificado pelo count parâmetro. Eles devem ser distinguidos de BufferedStream.Read e BufferedStream.Write, que leem e gravam o número de bytes especificado pelo count parâmetro. Use os BufferedStream métodos apenas para ler e gravar um número integral de elementos de matriz de bytes.

Observação

Ao ler de um Stream, é mais eficiente usar um buffer do mesmo tamanho que o buffer interno do fluxo.

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

Construtores

Nome Description
StreamReader(Stream, Boolean)

Inicializa uma nova instância da StreamReader classe para o fluxo especificado, com a opção de detecção de marca de ordem de ordem de bytes especificada.

StreamReader(Stream, Encoding, Boolean, Int32, Boolean)

Inicializa uma nova instância da StreamReader classe para o fluxo especificado com base na codificação de caracteres especificada, na opção de detecção de marca de ordem de byte e no tamanho do buffer e, opcionalmente, deixa o fluxo aberto.

StreamReader(Stream, Encoding, Boolean, Int32)

Inicializa uma nova instância da StreamReader classe para o fluxo especificado, com a codificação de caractere especificada, a opção de detecção de marca de ordem de byte e o tamanho do buffer.

StreamReader(Stream, Encoding, Boolean)

Inicializa uma nova instância da StreamReader classe para o fluxo especificado, com a opção especificada de codificação de caracteres e detecção de marca de ordem de bytes.

StreamReader(Stream, Encoding)

Inicializa uma nova instância da StreamReader classe para o fluxo especificado, com a codificação de caractere especificada.

StreamReader(Stream)

Inicializa uma nova instância da StreamReader classe para o fluxo especificado.

StreamReader(String, Boolean)

Inicializa uma nova instância da StreamReader classe para o nome do arquivo especificado, com a opção de detecção de marca de ordem de bytes especificada.

StreamReader(String, Encoding, Boolean, FileStreamOptions)

Inicializa uma nova instância da StreamReader classe para o caminho de arquivo especificado, com a codificação de caractere especificada, a opção de detecção de marca de ordem de byte e configurada com o objeto especificado FileStreamOptions .

StreamReader(String, Encoding, Boolean, Int32)

Inicializa uma nova instância da StreamReader classe para o nome do arquivo especificado, com a codificação de caractere especificada, a opção de detecção de marca de ordem de byte e o tamanho do buffer.

StreamReader(String, Encoding, Boolean)

Inicializa uma nova instância da StreamReader classe para o nome do arquivo especificado, com a opção de codificação de caractere especificada e detecção de marca de ordem de bytes.

StreamReader(String, Encoding)

Inicializa uma nova instância da StreamReader classe para o nome do arquivo especificado, com a codificação de caractere especificada.

StreamReader(String, FileStreamOptions)

Inicializa uma nova instância da StreamReader classe para o caminho de arquivo especificado, usando a codificação padrão, habilitando a detecção de marcas de ordem de bytes no início do arquivo e configurada com o objeto especificado FileStreamOptions .

StreamReader(String)

Inicializa uma nova instância da StreamReader classe para o nome do arquivo especificado.

Campos

Nome Description
Null

Um StreamReader objeto em torno de um fluxo vazio.

Propriedades

Nome Description
BaseStream

Retorna o fluxo subjacente.

CurrentEncoding

Obtém a codificação de caractere atual que o objeto atual StreamReader está usando.

EndOfStream

Obtém um valor que indica se a posição atual do fluxo está no final do fluxo.

Métodos

Nome Description
Close()

Fecha o StreamReader objeto e o fluxo subjacente e libera todos os recursos do sistema associados ao leitor.

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

Limpa o buffer interno.

Dispose()

Libera todos os recursos usados pelo TextReader objeto.

(Herdado de TextReader)
Dispose(Boolean)

Fecha o fluxo subjacente, libera os recursos não gerenciados usados pelo StreamReadere, opcionalmente, libera os recursos gerenciados.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
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 atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
Peek()

Retorna o próximo caractere disponível, mas não o consome.

Read()

Lê o próximo caractere do fluxo de entrada e avança a posição do caractere por um caractere.

Read(Char[], Int32, Int32)

Lê um máximo especificado de caracteres do fluxo atual em um buffer, começando no índice especificado.

Read(Span<Char>)

Lê os caracteres do fluxo atual em um intervalo.

ReadAsync(Char[], Int32, Int32)

Lê um número máximo especificado de caracteres do fluxo atual de forma assíncrona e grava os dados em um buffer, começando no índice especificado.

ReadAsync(Memory<Char>, CancellationToken)

Lê de forma assíncrona os caracteres do fluxo atual em um bloco de memória.

ReadBlock(Char[], Int32, Int32)

Lê um número máximo especificado de caracteres do fluxo atual e grava os dados em um buffer, começando no índice especificado.

ReadBlock(Char[], Int32, Int32)

Lê um número máximo especificado de caracteres do leitor de texto atual e grava os dados em um buffer, começando no índice especificado.

(Herdado de TextReader)
ReadBlock(Span<Char>)

Lê os caracteres do fluxo atual e grava os dados em um buffer.

ReadBlockAsync(Char[], Int32, Int32)

Lê um número máximo especificado de caracteres do fluxo atual de forma assíncrona e grava os dados em um buffer, começando no índice especificado.

ReadBlockAsync(Memory<Char>, CancellationToken)

Lê assíncronamente os caracteres do fluxo atual e grava os dados em um buffer.

ReadLine()

Lê uma linha de caracteres do fluxo atual e retorna os dados como uma cadeia de caracteres.

ReadLineAsync()

Lê uma linha de caracteres de forma assíncrona do fluxo atual e retorna os dados como uma cadeia de caracteres.

ReadLineAsync(CancellationToken)

Lê uma linha de caracteres de forma assíncrona do fluxo atual e retorna os dados como uma cadeia de caracteres.

ReadToEnd()

Lê todos os caracteres da posição atual até o final do fluxo.

ReadToEndAsync()

Lê todos os caracteres da posição atual até o final do fluxo de forma assíncrona e os retorna como uma cadeia de caracteres.

ReadToEndAsync(CancellationToken)

Lê todos os caracteres da posição atual até o final do fluxo de forma assíncrona e os retorna como uma cadeia de caracteres.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IDisposable.Dispose()

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

(Herdado de TextReader)

Aplica-se a

Confira também