Streams de java

Páginas: 10 (2360 palavras) Publicado: 19 de abril de 2012
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...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • Stream
  • Método stream
  • java
  • Java
  • Java
  • Java
  • Java
  • Java

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!