Your SlideShare is downloading. ×
Java Básico :: Stream
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Java Básico :: Stream

47
views

Published on

Material do curso de Java Básico da WBezerra. …

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.

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
47
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Java Básico Java I/Ocom Stream Prof. Wesley R. Bezerra
  • 2. Roteiro • O que é stream? • As interfaces de I/O • Principais subclasses • Exercício • Conclusão
  • 3. Objetivo • Conhecer melhor a hierarquia de classes que trabalham com stream
  • 4. O que é stream? • Stream é um modo de comunicação de dados, através de um fluxo de bytes. A palavra stream significa corrente, torrente, canal.
  • 5. As interfaces de I/O • Existem duas interfaces padrões no topo da hierarquia das classes utilizadas para trabalhar com stream. São elas:  InputStream • Utilizada para que o programa tenha um stream de entrada de dados  OutputStream • Utilizada para que o programa tenho um stream de saida de dados. • Obs: out e in são sempre do ponto de vista do programa, não do recurso.
  • 6. Principais subclasses de InputStream • ByteArrayInputStream • FileInputStream • FilterInputStream • BufferedInputStream • DataInputStream • PushbackInputStream • ObjectInputStream • PipedInputStream • SequenceInputStream
  • 7. ByteArrayInputStream • Esta classe contem um buffer interno que armazena os bytes que podem ser lidos da stream. Um contador interno manter a referencia para o próximo byte a ser fornecido para o método read.
  • 8. 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.
  • 9. FilterInputStream • É uma classe que contem algum outro stream de entrada, o qual é utilizado como sua fonte básica de dados, possibilitando a transformação dos dados ao longo do caminho ou provendo funcionalidades adicionais.
  • 10. BufferedInputStream • Esta classe adiciona funcionalidade a outro stream de entrada, a habilidade para fazer um buffer da entrada para suporte a métodos para marcação e reset. • Quando o BufferedInputStream é criado, um buffer array interno também é criado.
  • 11. DataInputStream • Uma classe deste tipo permite a aplicação ler dados de tipos primitivos de um stream de entrada subjacente de um modo independente de maquina.
  • 12. PushbackInputStream • Esta classe adiciona funcionalidades a outro stream de entrada, isto é, a habilidade para “pushback” ou “unread” um byte. • Isto é útil em situações onde é conveniente a um fragmento de código ler um numero indefinido de bytes que são delimitados por um byte de valor particular; depois de ler o byte de finalização, o fragmento de código pode “unread” (“des-ler”) este, então a próxima operação pode ler novamente o byte que foi devolvido.
  • 13. ObjectInputStream • Esta classe desserializa dados primitivos e objetos preveamente escritos utilizando um ObjectOutputStream. • ObjectOutputStream e ObjectInputStream podem prover a aplicação meios de persistir seus objetos.
  • 14. PipedInputStream • Esta 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 são lidos do objeto PipedInputStream por uma thread e os dados no PipedOutputStream correspondentes são escritos por outra.
  • 15. SequenceInputStream • Esta classe representa uma concatenação lógica de outros streams de entrada. • Inicia com uma coleção ordenada de streams de entrada e leitores do inicio ate o fim do arquivo ser atingido, após isto lê do segundo e assim por diante, ate o fim do arquivo ser achado no ultimo stream de entrada contido.
  • 16. Principais interfaces de OutputStream • ByteArrayOutputStream • FileOutputStream • FilterOutputStream • BufferedOutputStream • DataOutputStream • PrintStream • ObjectOutputStream • PipedOutputStream
  • 17. ByteArrayOutputStrea m • Esta classe implementa um stream de saída no qual os dados são 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();
  • 18. FileOutputStream • É a classe utilizada para escrever dados em um arquivo(File) ou em um descritor de arquivo (FileDescriptor).
  • 19. FilterOutputStream • É a superclasse de todos os streams de saída com filtros. Este stream é utilizado sobre um stream de saída o qual é usado como escoadouro de dados, mas possibilitando a transformar os dados ao longo do caminho ou provendo funcionalidades adicionais.
  • 20. BufferedOutputStream • Através desta classe uma aplicação pode ler bytes de outro stream de saída sem precisar fazer uma chamada no sistema para cada byte escrito.
  • 21. DataOutputStream • Esta classe permite a aplicação escrever dados dos tipos primitivos do java, um stream de saída “portável”. • Uma aplicação pode então usar um DataInputStream para ler os dados novamente.
  • 22. PrintStream • Esta classe adiciona a outro stream de saída a funcionalidade de imprimir representações de vários valores de dados.
  • 23. ObjectOutputStream • Esta classe escreve tipos de dados primitivos e objetos em um stream de saída. Os objetos podem ser lidos (reconstituídos) usando um ObjectInputStream.
  • 24. PipedOutputStream • Um stream de saída piped pode ser conectado a um stream de entrada para criar uma comunicação “conectada”. • Para entender melhor leia o slide de PipedInputStream.
  • 25. Exercício • Faça um programa que serialize objetos e os salve em disco. • Faça 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?
  • 26. Conclusão • Existem muitas diferente classes dentro da hierarquia do InputStream e OutputStream, é sempre bom conhecermos melhor as suas características individuais para saber quando é melhor utilizar uma ou outra subclasse.
  • 27. Obrigado Perguntas e sugestões wesleybez@yahoo.com.br