StreamReader Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Implementa um TextReader que lê caracteres de um fluxo de bytes numa 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 seguinte utiliza uma instância de StreamReader para ler texto de um ficheiro. O construtor usado neste exemplo não é suportado para uso em aplicações 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 seguinte instancia um StreamReader objeto e chama o seu ReadAsync método para ler um ficheiro 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.
Observações
StreamReader é concebido para entrada de caracteres numa codificação específica, enquanto a Stream classe é concebida para entrada e saída por bytes. Usar StreamReader para ler linhas de informação de um ficheiro de texto padrão.
Important
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.
StreamReader por defeito é a codificação UTF-8, salvo indicação em contrário, em vez de usar por defeito a página de códigos ANSI do sistema atual. O UTF-8 lida corretamente com caracteres Unicode e fornece resultados consistentes em versões localizadas do sistema operativo. Se obtiver a codificação atual de caracteres usando a CurrentEncoding propriedade, o valor não é fiável até depois do primeiro Read método, uma vez que a deteção automática da codificação só é feita na primeira chamada a um Read método.
Por defeito, a StreamReader não é seguro para threads. Procura TextReader.Synchronized um invólucro seguro para fios.
O Read(Char[], Int32, Int32) método and Write(Char[], Int32, Int32) sobrecarrega a leitura e escrita o número de caracteres especificados pelo count parâmetro. Estes devem ser distinguidos de BufferedStream.Read e BufferedStream.Write, que leem e escrevem o número de bytes especificados pelo count parâmetro. Use os BufferedStream métodos apenas para ler e escrever um número inteiro de elementos do array de bytes.
Note
Ao ler de um Stream, é mais eficiente usar um buffer do mesmo tamanho que o buffer interno do fluxo.
Para uma lista de tarefas comuns de E/S, consulte Tarefas Comuns de E/S.
Construtores
| Name | Description |
|---|---|
| StreamReader(Stream, Boolean) |
Inicializa uma nova instância da StreamReader classe para o fluxo especificado, com a opção de deteção de marca 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 deteção de marca de ordem de bytes 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 caracteres especificada, a opção de deteção de marca de ordem de bytes 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 de codificação de caracteres e deteção de marcação de ordem de bytes especificada. |
| StreamReader(Stream, Encoding) |
Inicializa uma nova instância da StreamReader classe para o fluxo especificado, com a codificação de caracteres 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 de ficheiro especificado, com a opção de deteção de marca de ordem de bytes especificada. |
| StreamReader(String, Encoding, Boolean, Int32) |
Inicializa uma nova instância da StreamReader classe para o nome de ficheiro especificado, com a codificação de caracteres especificada, opção de deteção de marca de ordem de bytes e tamanho do buffer. |
| StreamReader(String, Encoding, Boolean) |
Inicializa uma nova instância da StreamReader classe para o nome de ficheiro especificado, com a codificação de caracteres e a opção de deteção de ordem de bytes especificada. |
| StreamReader(String, Encoding) |
Inicializa uma nova instância da StreamReader classe para o nome de ficheiro especificado, com a codificação de caracteres especificada. |
| StreamReader(String) |
Inicializa uma nova instância da StreamReader classe para o nome de ficheiro especificado. |
Campos
| Name | Description |
|---|---|
| Null |
Um StreamReader objeto à volta de um riacho vazio. |
Propriedades
| Name | Description |
|---|---|
| BaseStream |
Devolve o fluxo subjacente. |
| CurrentEncoding |
Obtém a codificação atual de caracteres que o objeto atual StreamReader está a usar. |
| EndOfStream |
Obtém um valor que indica se a posição atual do fluxo está no final do fluxo. |
Métodos
| Name | Description |
|---|---|
| Close() |
Fecha o StreamReader objeto e o fluxo subjacente, e liberta quaisquer recursos do sistema associados ao leitor. |
| 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) |
| DiscardBufferedData() |
Limpa o buffer interno. |
| Dispose() |
Liberta todos os recursos usados pelo TextReader objeto. (Herdado de TextReader) |
| Dispose(Boolean) |
Fecha o fluxo subjacente, liberta os recursos não geridos usados pelo StreamReader, e opcionalmente liberta os recursos geridos. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| 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) |
| Peek() |
Devolve o próximo personagem disponível mas não o consome. |
| Read() |
Lê o próximo carácter do fluxo de entrada e avança a posição do carácter em um caractere. |
| Read(Char[], Int32, Int32) |
Lê um máximo especificado de caracteres do fluxo atual para um buffer, começando no índice especificado. |
| Read(Span<Char>) |
Lê os caracteres do fluxo atual para um intervalo. |
| ReadAsync(Char[], Int32, Int32) |
Lê um número máximo especificado de caracteres do fluxo atual de forma assíncrona e escreve os dados num buffer, começando no índice especificado. |
| ReadAsync(Memory<Char>, CancellationToken) |
Lê assíncronamente os caracteres do fluxo atual para um bloco de memória. |
| ReadBlock(Char[], Int32, Int32) |
Lê um número máximo especificado de caracteres do fluxo atual e escreve os dados num 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 escreve os dados num buffer, começando no índice especificado. (Herdado de TextReader) |
| ReadBlock(Span<Char>) |
Lê os caracteres do fluxo atual e escreve os dados num buffer. |
| ReadBlockAsync(Char[], Int32, Int32) |
Lê um número máximo especificado de caracteres do fluxo atual de forma assíncrona e escreve os dados num buffer, começando no índice especificado. |
| ReadBlockAsync(Memory<Char>, CancellationToken) |
Lê assíncronamente os caracteres do fluxo atual e escreve os dados num buffer. |
| ReadLine() |
Lê uma linha de caracteres do fluxo atual e devolve os dados como uma cadeia de caracteres. |
| ReadLineAsync() |
Lê uma linha de caracteres de forma assíncrona a partir do fluxo atual e devolve os dados como uma cadeia. |
| ReadToEnd() |
Lê todos os caracteres desde a posição atual até ao fim do fluxo. |
| ReadToEndAsync() |
Lê todos os caracteres da posição atual até ao fim do fluxo de forma assíncrona e devolve-os como uma única cadeia. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Para uma descrição deste elemento, veja Dispose(). (Herdado de TextReader) |