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!!!