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 StreamReader para ler texto de um arquivo. O construtor usado neste exemplo não tem suporte para uso nos Aplicativos da Windows Store.

using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      // Create an instance of StreamReader to read from a file.
      StreamReader^ sr = gcnew StreamReader( "TestFile.txt" );
      try
      {
         String^ line;
         
         // Read and display lines from the file until the end of 
         // the file is reached.
         while ( line = sr->ReadLine() )
         {
            Console::WriteLine( line );
         }
      }
      finally
      {
         if ( sr )
            delete (IDisposable^)sr;
      }
   }
   catch ( Exception^ e ) 
   {
      // Let the user know what went wrong.
      Console::WriteLine( "The file could not be read:" );
      Console::WriteLine( e->Message );
   }
}
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 interface IDisposable. Quando você terminar de usar o tipo, deverá descartá-lo direta ou indiretamente. 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 (em Visual Basic). Saiba mais na seção "Como usar um objeto que implementa IDisposable" no tópico da interface IDisposable.

StreamReader usa como padrão a codificação UTF-8, a menos que especificado de outra forma, em vez de usar como padrão a página de código ANSI do sistema atual. UTF-8 manipula 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 codificação da detecção automática não será feita até a primeira chamada a um Read método.

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

O Read(Char[], Int32, Int32) método e Write(Char[], Int32, Int32) sobrecarrega ler e gravar o número de caracteres especificado pelo count parâmetro . Eles devem ser diferenciados 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 somente 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

StreamReader(Stream)

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

StreamReader(Stream, Boolean)

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

StreamReader(Stream, Encoding)

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

StreamReader(Stream, Encoding, Boolean)

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

StreamReader(Stream, Encoding, Boolean, Int32)

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

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

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

StreamReader(String)

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

StreamReader(String, Boolean)

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

StreamReader(String, Encoding)

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

StreamReader(String, Encoding, Boolean)

Inicializa uma nova instância da classe StreamReader para o nome de arquivo especificado, com a codificação de caractere e opção de detecção da marca da ordem de byte 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 classe StreamReader para o nome de arquivo especificado, com a codificação de caracteres, a opção de detecção de marca de ordem de byte e o tamanho do buffer especificados.

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 .

Campos

Null

Um objeto StreamReader em torno de um fluxo vazio.

Propriedades

BaseStream

Retorna o fluxo subjacente.

CurrentEncoding

Obtém a codificação de caracteres atual que está sendo usada pelo objeto StreamReader atual.

EndOfStream

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

Métodos

Close()

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

Close()

Fecha o TextReader e libera os recursos do sistema associados ao TextReader.

(Herdado de TextReader)
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 objeto TextReader.

(Herdado de TextReader)
Dispose(Boolean)

Fecha o fluxo subjacente, libera os recursos não gerenciados usados pelo StreamReader e, 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 ciclo de vida para esta 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 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)
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 em 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 para um intervalo.

Read(Span<Char>)

Lê os caracteres do leitor atual e grava os dados no buffer especificado.

(Herdado de TextReader)
ReadAsync(Char[], Int32, Int32)

Lê um 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(Char[], Int32, Int32)

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

(Herdado de TextReader)
ReadAsync(Memory<Char>, CancellationToken)

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

ReadAsync(Memory<Char>, CancellationToken)

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

(Herdado de TextReader)
ReadBlock(Char[], Int32, Int32)

Lê um 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 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.

ReadBlock(Span<Char>)

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

(Herdado de TextReader)
ReadBlockAsync(Char[], Int32, Int32)

Lê um 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(Char[], Int32, Int32)

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

(Herdado de TextReader)
ReadBlockAsync(Memory<Char>, CancellationToken)

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

ReadBlockAsync(Memory<Char>, CancellationToken)

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

(Herdado de TextReader)
ReadLine()

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

ReadLineAsync()

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

ReadLineAsync()

Lê uma linha de caracteres assincronamente e retorna os dados como uma cadeia de caracteres.

(Herdado de TextReader)
ReadLineAsync(CancellationToken)

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

ReadLineAsync(CancellationToken)

Lê uma linha de caracteres assincronamente e retorna os dados como uma cadeia de caracteres.

(Herdado de TextReader)
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()

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

(Herdado de TextReader)
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.

ReadToEndAsync(CancellationToken)

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

(Herdado de TextReader)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IDisposable.Dispose()

Para obter uma descrição desse membro, confira Dispose().

(Herdado de TextReader)

Aplica-se a

Confira também