English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Stream do C#

C# inclui os seguintes padrões de IO (input/Classe de saída (output), pode ser lida de diferentes fontes (por exemplo, arquivos, memória, rede, armazenamento isolado etc.)/Escrever.

Fluxo (Stream): System.IO.Stream É uma classe abstrata que fornece métodos padrão para transmitir bytes (leitura, escrita etc.) para a fonte. Transmite bytes como classes de encapsulamento. É necessário ler de uma fonte específica/As classes que escrevem bytes devem implementar a classe Stream.

As seguintes classes herdam a classe Stream para fornecer leitura/Função de escrita de bytes:

FileStream:Ler bytes de um arquivo físico ou escrever bytes em um arquivo físico, seja .txt, .exe, .jpg ou qualquer outro arquivo. FileStream deriva da classe Stream.

MemoryStream: MemoryStream lê ou escreve bytes armazenados em memória.

BufferedStream: BufferedStream lê ou escreve bytes de outros Stream para melhorar certos I / Desempenho da operação O.

NetworkStream: NetworkStream lê ou escreve bytes de uma socket de rede.

PipeStream: PipeStream lê ou escreve bytes de diferentes processos.

CryptoStream: CryptoStream é usado para conectar fluxos de dados a transformações de criptografia.

A figura a seguir mostra a estrutura hierárquica das classes de fluxo:

Estrutura hierárquica de classes de fluxo

Ler e escrever fluxos

StreamReader:StreamReader é uma classe auxiliar usada para ler caracteres de Stream convertendo bytes em caracteres. Pode ser usado para ler strings de diferentes fluxos (por exemplo, FileStream, MemoryStream, etc.).

StreamWriter:StreamWriter é uma classe auxiliar usada para escrever strings em Stream convertendo caracteres em bytes. Pode ser usada para escrever strings em diferentes fluxos, como FileStream, MemoryStream, etc.

BinaryReader:BinaryReader é uma classe auxiliar usada para ler dados de tipos originais de bytes.

BinaryWriter:BinaryWriter escreve tipos originais em binário.

E/S de fluxo

A imagem acima mostra que FileStream lê bytes de um arquivo físico, e StreamReader lê strings convertendo esses bytes em strings. Da mesma forma, StreamWriter obtém uma string e a converte em bytes, escrevendo então no FileStream, que por sua vez escreve os bytes em um arquivo físico. Portanto, FileStream lida com bytes, enquanto StreamReader e StreamWriter lidam com strings.

 Ponto a lembrar

  1. Stream é uma classe abstrata usada para transmitir bytes de diferentes fontes. É a classe base para todas as outras classes, que leem bytes./Escrever em diferentes fontes.

  2. A classe FileStream oferece funcionalidades de leitura e escrita de bytes em arquivos físicos.

  3. Classe de leitor/escrever oferece a funcionalidade de ler bytes de classes de fluxo (FileStream, MemoryStream, etc.) e convertê-los para a codificação apropriada.

  4. StreamReader oferece um método auxiliar para ler strings do FileStream convertendo bytes em strings. StreamWriter oferece um método de ajuda para escrever strings no FileStream convertendo strings em bytes.

No próximo capítulo, você aprenderá como ler/Escrever no sistema de arquivos.