StreamReader Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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 |
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) |