Como usar a classe Stream no VB.NET

 

Entendendo o que é um stream.

O Visual Basic visualiza um arquivo como um fluxo seqüencial de bytes, ou seja, este fluxo nada mais do que um Stream.

Dependendo do sistema operacional, cada arquivo termina com um marcador de fim de arquivo ou em um número de byte específico, que é registrado em uma estrutura de dados mantida pelo sistema.

 

Quando abrimos um arquivo a partir de um programa  como Visual Basic, um objeto é criado e um fluxo (stream) é associado a este objeto. Quando um programa executa, o ambiente de execução cria três objetos stream que são acessíveis por meio das propriedades Console.Out, Console.In e Console.Error, respectivamente. Estes objetos facilitam a comunicação entre um programa e um arquivo ou dispositivo em particular.

 

Console.In se refere ao objeto stream de entrada padrão, que permite que um programa leia entrada do teclado. Console.Out se refere ao objeto stream de saída padrão, que permite que um programa envie saída para a tela. Console.Error se refere ao objeto stream de erro padrão, que permite que um programa exiba mensagens de erro na tela.

 

O namespace System.IO inclui classes de stream tais como:

 

·         StreamReader (para ler texto a partir de um arquivo);

·         StreamWriter (para escrever texto em um arquivo);

·         FileStream (para escrever e ler texto de um arquivo).

 

Estas classes stream herdam das classes MustInherit (classes que só podem ser usadas como classes base) TextReader, TextWriter e Stream, respectivamente.

As classes base de stream fornecem funcionalidades para representar fluxos formados por bytes. As classes FileStream, MemoryStream e BufferedStream (todas no namespace System.IO) herdam da classe Stream.

A classe FileStream pode ser usada para escrever e ler dados em arquivos. A classe MemoryStream permite a transferência de dados diretamente na memória. Esta operação é mais rápida que escrever ou ler de dispositivos externos. A classe BufferedStream usa buferização para transferir dados de ou para um fluxo. Buferização é uma técnica de melhoria de performance na qual cada operação de saída é direcionada à uma região na memória, chamada de buffer, a qual é grande o suficiente para armazenar os dados resultantes de muitas operações de saída. Finalmente a transferência para o dispositivo de saída é feita de forma mais eficiente em apenas uma operação.

 

Deforma simples podemos definir que usar Streams envolve as seguintes operações fundamentais

  • Você pode ler a partir de streams. A leitura é a transferência de dados de um stream em uma estrutura de dados como um array de bytes;
  • Você pode escrever para streams. A escrita é a transferência de dados a partir de uma estrutura de dados para um stream;

Streams podem suportam busca. A busca é a consulta e modificação de uma posição atual no interior do stream. A capacidade de busca depende do stream.

Veja no próximo artigo exemplos práticos.