Streams de java

Disponível somente no TrabalhosFeitos
  • Páginas : 10 (2360 palavras )
  • Download(s) : 0
  • Publicado : 19 de abril de 2012
Ler documento completo
Amostra do texto
STREAMS DE JAVA
Em JAVA, todas as considerações (ou quase todas) que se relacionam com as mais diferentes formas de se realizar a leitura e a escrita de dados a partir das mais diversas fontes e para os mais diferentes destinos, são reunidas e abstraídas no conceito de stream. Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita dedados, de acesso sequencial e independente de dispositivos físicos concretos, formatos ou até de mecanismos de optimização de leitura e escrita. É, portanto, uma abstracção e, como tal, terá que ser sempre refinada e concretizada, e, em particular, ser associada a uma entidade física de suporte de dados, seja um ficheiro em disco ou em CD-ROM, um website, um array de bytes, uma string, um DVD, umoutro computador da rede, etc.
leitura

Programa

streams

Fonte Destino
escrita

Streams como abstracções de leitura e escrita

Para ler informação, um programa abre uma stream sobre uma dada fonte de informação, por exemplo um ficheiro, a memória, um socket, e lê essa informação sequencialmente, ou byte a byte ou carácter a carácter. Inversamente, um programa pode enviar informaçãopara um destino externo abrindo uma stream de escrita e escrevendo informação de modo sequencial na stream.

Streams de Java – Essencial

1

As operações de leitura e escrita sobre uma qualquer stream, obedecem a um padrão de funcionamento e utilização que é sempre muito semelhante.

try {

try {

abrir a stream ler enquanto não for fim processar ler
} catch(IOException e) { .. } }abrir a stream processar informação enquanto não for fim escrever na stream processar informação
catch(IOException e) { .. }

fechar a stream

fechar a stream

Em JAVA, existem dois grandes tipos de streams, designadamente,

Streams de caracteres (2 bytes), ou seja, streams de texto; Streams de bytes, ou seja, streams binárias.
com dois tipos de funções fundamentais:

Leituras -Readers Escritas - Writers Vejamos a hierarquia de Streams de JAVA:
Streams de Java – Essencial 2

Streams de Java – Essencial

3

Algumas Streams foram concebidas para comunicarem directamente com fontes ou destinos de dados.
Piped*

File*

String*
string

CharArray*
char[]

As diversas subclasses de Writer, Reader, InputStream e OutputStream, possuem designações iniciadas porprefixos, tais como Print, Buffered, File, Piped, CharArray, String, etc., que já analisámos atrás. Temos agora, na prática que saber tomar a decisão sobre qual a stream lógica que nos interessa considerar ao nível da programação, ou seja, a classe que possui os métodos que pretendemos utilizar, e a stream física que pretendemos usar por ser a mais adequada em termos de fonte ou destino dos dados.Streams de Java – Essencial

4

ANINHAMENTO DE STREAMS A maioria dos construtores de Streams apresenta uma declaração “aninhada” que pode parecer estranha, mas que reflecte esta distinção entre stream lógica e stream física.

public BufferedWriter(Writer out);
Exemplo:

BufferedWriter bout = new BufferedWriter( new FileWriter(“f1.txt”) );
O que se consegue com este tipo de aninhamentoé, antes de mais, a possibilidade de, ao nível da programação, usarmos um protocolo ou API de alto nível, que nos permite abstrair de um grande número de detalhes concretos de implementação sobre a obtenção dos dados na fonte (neste caso, o programa) e a sua transmissão efectiva para o destino, neste caso, um ficheiro de caracteres (onde cada carácter é representado usando 2 bytes). A Figuraprocura ilustrar, em concreto, esta situação de aninhamento ou associação aninhamento, (wrapping, segundo alguns), entre streams lógicas e físicas:

Programa

Buffered Writer

File Writer

A simetria da Hierarquia é uma enorme vantagem:

BufferedReader bin = new BufferedReader( new FileReader(“f1.txt”) );
Streams de Java – Essencial 5

A nova versão (de JAVA5) de PrintWriter permite que...
tracking img