Streams

O conceito de stream permite-nos abstrair-nos dos detalhes da estrutura de dados subjacente e utilizar um conjunto de métodos comum a vários tipos de streams.
Uma stream encapsula uma sequência de dados, frequentemente bytes.
Uma stream possui uma fonte e um destino.
Se um trecho de código escreve numa stream, ele é a fonte deste.
Se um trecho de código lê de um stream, ele é o destino deste.

Definição
Uma stream pode ser considerado um fluxo sequêncial de bytes com um arquivo, um dispositivo de entrada/saida, um processo de comunicação entre dois pontos ou um socket TCP/IP.
Usar Streams envolve as seguintes operações fundamentais:
Ler a partir de streams. A leitura é a transferência de dados de uma stream numa estrutura de dados como um array de bytes;
Escrever para streams. A escrita é a transferência de dados a partir de uma estrutura de dados para uma stream;

As Streams podem suportar a busca.
A busca é a consulta e modificação de uma posição actual no interior da stream.
A capacidade de busca depende da stream.
O StreamReader e StreamReader são duas classes para de manipular ficheiros de texto.
Veremos de seguida um exemplo.

Imports System
Imports System.IO

Module module1
Public Sub Main()
Try
escrever()
' Criar uma intância de uma streamreader para ler dum ficheiro.
Dim sr As StreamReader = New StreamReader("testfile.txt")
Dim line As String
'ler e escrever as linhas do ficheiro até ao fim deste
Do
line = sr.ReadLine()
Console.WriteLine(line)
Loop Until line Is Nothing
sr.Close()

Catch E As Exception
' mostrar ao utilizador o que correu mal
Console.WriteLine("The file could not be read:")
Console.WriteLine(E.Message)
Console.ReadKey()
End Try
Console.ReadKey()
End Sub

Public Sub escrever()
' Cria uma instância de uma StreamWriter para escrever num ficheiro
Dim sw As StreamWriter = New StreamWriter("testfile.txt")
' Inclui algum texto
sw.Write("Este é um teste")
sw.WriteLine("-------------------")
' Outros objectos podem ser escritos no ficheiro
sw.Write("Data : ")
sw.WriteLine(DateTime.Now)
sw.Close()

End Sub

0 comentários:

Enviar um comentário