java básico :: stream

Click here to load reader

Post on 09-Jul-2015

101 views

Category:

Education

3 download

Embed Size (px)

DESCRIPTION

Material do curso de Java Básico da WBezerra. Como utilizar Streams em Java e quais as implementações deste recurso são fornecidas pelo sdk.

TRANSCRIPT

  • Java Bsico Java I/O com StreamProf. Wesley R. Bezerra

  • RoteiroO que stream?As interfaces de I/OPrincipais subclassesExerccioConcluso

  • ObjetivoConhecer melhor a hierarquia de classes que trabalham com stream

  • O que stream?Stream um modo de comunicao de dados, atravs de um fluxo de bytes. A palavra stream significa corrente, torrente, canal.

  • As interfaces de I/OExistem duas interfaces padres no topo da hierarquia das classes utilizadas para trabalhar com stream. So elas:InputStreamUtilizada para que o programa tenha um stream de entrada de dadosOutputStreamUtilizada para que o programa tenho um stream de saida de dados.Obs: out e in so sempre do ponto de vista do programa, no do recurso.

  • Principais subclasses de InputStreamByteArrayInputStreamFileInputStreamFilterInputStreamBufferedInputStreamDataInputStreamPushbackInputStreamObjectInputStreamPipedInputStreamSequenceInputStream

  • ByteArrayInputStreamEsta classe contem um buffer interno que armazena os bytes que podem ser lidos da stream. Um contador interno manter a referencia para o prximo byte a ser fornecido para o mtodo read.

  • FileInputStream uma classe utilizada para obter entradas de byte de um arquivo no file system. Ele poder ler os arquivos de acordo com o ambiente onde deve ser utilizado.

  • FilterInputStream uma classe que contem algum outro stream de entrada, o qual utilizado como sua fonte bsica de dados, possibilitando a transformao dos dados ao longo do caminho ou provendo funcionalidades adicionais.

  • BufferedInputStreamEsta classe adiciona funcionalidade a outro stream de entrada, a habilidade para fazer um buffer da entrada para suporte a mtodos para marcao e reset.Quando o BufferedInputStream criado, um buffer array interno tambm criado.

  • DataInputStreamUma classe deste tipo permite a aplicao ler dados de tipos primitivos de um stream de entrada subjacente de um modo independente de maquina.

  • PushbackInputStreamEsta classe adiciona funcionalidades a outro stream de entrada, isto , a habilidade para pushback ou unread um byte.Isto til em situaes onde conveniente a um fragmento de cdigo ler um numero indefinido de bytes que so delimitados por um byte de valor particular; depois de ler o byte de finalizao, o fragmento de cdigo pode unread (des-ler) este, ento a prxima operao pode ler novamente o byte que foi devolvido.

  • ObjectInputStreamEsta classe desserializa dados primitivos e objetos preveamente escritos utilizando um ObjectOutputStream.ObjectOutputStream e ObjectInputStream podem prover a aplicao meios de persistir seus objetos.

  • PipedInputStreamEsta classe deve ser conectada a um PipedInputStream; o stream de entrada piped entao prove qualquer byte de dado que seja escrito no stream de saida piped.Tipicamente, os dados so lidos do objeto PipedInputStream por uma thread e os dados no PipedOutputStream correspondentes so escritos por outra.

  • SequenceInputStreamEsta classe representa uma concatenao lgica de outros streams de entrada.Inicia com uma coleo ordenada de streams de entrada e leitores do inicio ate o fim do arquivo ser atingido, aps isto l do segundo e assim por diante, ate o fim do arquivo ser achado no ultimo stream de entrada contido.

  • Principais interfaces de OutputStreamByteArrayOutputStreamFileOutputStreamFilterOutputStreamBufferedOutputStreamDataOutputStreamPrintStreamObjectOutputStreamPipedOutputStream

  • ByteArrayOutputStreamEsta classe implementa um stream de sada no qual os dados so escritos em um array de bytes. O buffer cresce automaticamente de acordo com a escrita dos dados. Os dados podem ser resgatados utilizando toByteArray() e toString();

  • FileOutputStream a classe utilizada para escrever dados em um arquivo(File) ou em um descritor de arquivo (FileDescriptor).

  • FilterOutputStream a superclasse de todos os streams de sada com filtros. Este stream utilizado sobre um stream de sada o qual usado como escoadouro de dados, mas possibilitando a transformar os dados ao longo do caminho ou provendo funcionalidades adicionais.

  • BufferedOutputStreamAtravs desta classe uma aplicao pode ler bytes de outro stream de sada sem precisar fazer uma chamada no sistema para cada byte escrito.

  • DataOutputStreamEsta classe permite a aplicao escrever dados dos tipos primitivos do java, um stream de sada portvel. Uma aplicao pode ento usar um DataInputStream para ler os dados novamente.

  • PrintStreamEsta classe adiciona a outro stream de sada a funcionalidade de imprimir representaes de vrios valores de dados.

  • ObjectOutputStreamEsta classe escreve tipos de dados primitivos e objetos em um stream de sada. Os objetos podem ser lidos (reconstitudos) usando um ObjectInputStream.

  • PipedOutputStreamUm stream de sada piped pode ser conectado a um stream de entrada para criar uma comunicao conectada.Para entender melhor leia o slide de PipedInputStream.

  • ExerccioFaa um programa que serialize objetos e os salve em disco.Faa um socket que envie dados primitivos e que possa ser utilizado por um socket em outra linguagem.Para que serve um PipedInputStream e um PipedOutputStream?

  • ConclusoExistem muitas diferente classes dentro da hierarquia do InputStream e OutputStream, sempre bom conhecermos melhor as suas caractersticas individuais para saber quando melhor utilizar uma ou outra subclasse.

  • ObrigadoPerguntas e [email protected]