Neste artigo iremos ver exemplos práticos, vamos lá.

Exemplos:

 


Exemplo de leietura de um arquivo texto : StreamReader

 

Public Shared Sub Main()
Try
'' Cria uma instância de um StreamReader para ler um arquivo                         
Using sr As StreamReader = New StreamReader("Teste.txt")
Dim line As String
'' Lê e exibe as linhas do aruqivo até o fim
Do
line = sr.ReadLine()
Console.WriteLine(line)
Loop Until line Is Nothing
sr.Close()
End Using
Catch E As Exception
'' Exibe mensagem de erro
Console.WriteLine("O arquivo não pode ser lido")
Console.WriteLine(E.Message)
End Try
End Sub

 

 

Exemplo de escrita em um arquivo texto: StreamWriter

 

Public Shared Sub Main()
'' Cria uma instância de um StreamWriter para escrever para um arquivo
Using sw As StreamWriter = New StreamWriter("Teste.txt")
'' Inclui algum texto
sw.Write("Este é um teste")
sw.WriteLine("-------------------")
'' Outros objetos podem ser escritos no arquivo
sw.Write("Data : ")
sw.WriteLine(DateTime.Now)
sw.Close()
End Using
End Sub

 

A classe Stream é abstrata, e por isso não pode ser instanciada diretamente. Ao implementar uma classe derivada de Stream você deverá fornecer implementações para os métodos Read e Write.

 

A classe Stream é implementada pelas seguintes classes:

 

BufferedStream: Fornece uma camada buferizada em outro stream para aumentar o desempenho.

FileStream: Fornece uma forma de ler e escrever arquivos.

MemoryStream: Fornece um stream usando a memória como forma de armazenamento.

NetworkStream:  Fornece uma forma de acessar dados em uma rede.

CryptoStream:  Fornece uma forma de suprir dados para uma operação de criptografia.

De forma geral operações com stream envolvem operações de leitura, escrita e procura. ( read, write , seek )

 

- Principais propriedades da classe Stream:

 

Propriedade

Descrição

CanRead

Retorna True se o stream suporta a leitura.

CanSeek

Retorna True se o stream suporta a busca para um posição particular do stream.

CanTimeout

Retorna True se o stream suporta timeout expiração de tempo para operações de leitura e escrita.

CanWrite

Retorna True se o stream suporta escrita.

Length

Retorna o número de bytes de um stream.

Position

Retorna a posição atual do Stream. Para um stream que suporta a busca, o programa pode definir este valor para se mover para uma posição particular.

ReadTimeout

Determina o número de mili-segundos que uma operação de leitura irá esperar até expirar.

WriteTimeout

Determina o número de mili-segundos que uma operação de escrita irá esperar até expirar.

 

- Métodos mais úteis da classe Stream:

 

Método

Propósito

BeginWrite

Inicia uma escrita assíncrona.

BeginRead

Inicia uma leitura assíncrona

Close

Fecha o stream e libera qualquer recurso usado.

EndRead

Aguarda que uma leitura assíncrona termine.

EndWrite

Encerra uma escrita assíncrona.

Flush

Libera os dados de um buffer de stream em um meio de armazenamento.(arquivo, memória, etc.).

Read

Lê bytes de um stream e avança a posição para o número de bytes.

ReadByte

Lê um byte de um stream e avança a sua posição em um byte.

Seek

Se o stream suporta a operação de busca , define a posição no stream.

SetLength

Define o comprimento do stream.Se o stream atual é maior que o novo tamanho definido ele é truncado. Se o stream for menor ele é expandido.

Write

Escreve bytes em um stream e avança a posição atual pelo número de bytes escritos.

WriteByte

Escreve um byte em um stream e avança a posição atual em um byte.

Até a próxima!!!