SlideShare uma empresa Scribd logo
1 de 28
Java Básico
Java I/Ocom Stream
Prof. Wesley R. Bezerra
Roteiro
• O que é stream?
• As interfaces de I/O
• Principais subclasses
• Exercício
• Conclusão
Objetivo
• Conhecer melhor a
hierarquia de classes que
trabalham com stream
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.
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.
Principais subclasses
de InputStream
• ByteArrayInputStream
• FileInputStream
• FilterInputStream
• BufferedInputStream
• DataInputStream
• PushbackInputStream
• ObjectInputStream
• PipedInputStream
• SequenceInputStream
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.
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 básica de
dados, possibilitando a transformação dos dados ao
longo do caminho ou provendo funcionalidades
adicionais.
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.
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.
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.
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.
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.
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.
Principais interfaces de
OutputStream
• ByteArrayOutputStream
• FileOutputStream
• FilterOutputStream
• BufferedOutputStream
• DataOutputStream
• PrintStream
• ObjectOutputStream
• PipedOutputStream
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();
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 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.
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.
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.
PrintStream
• Esta classe adiciona a outro stream de saída a
funcionalidade de imprimir representações de vários
valores de dados.
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.
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.
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?
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.
Obrigado
Perguntas e sugestões
wesleybez@yahoo.com.br

Mais conteúdo relacionado

Mais procurados

Apresentação java io
Apresentação java ioApresentação java io
Apresentação java io
Silvino Neto
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
Alvaro Oliveira
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivos
samuelthiago
 
1 exercicio funcoes com string e manipulacao com arquivo
1 exercicio  funcoes com string e manipulacao com arquivo1 exercicio  funcoes com string e manipulacao com arquivo
1 exercicio funcoes com string e manipulacao com arquivo
Kievnny Mendonca
 

Mais procurados (18)

Apresentação java io
Apresentação java ioApresentação java io
Apresentação java io
 
F I C+ + L P 05
F I C+ + L P 05F I C+ + L P 05
F I C+ + L P 05
 
Java 13
Java 13Java 13
Java 13
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Laboratório de Programação II: Threads
Laboratório de Programação II: ThreadsLaboratório de Programação II: Threads
Laboratório de Programação II: Threads
 
Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *Laboratório de Programação II: Uso do ponteiro void *
Laboratório de Programação II: Uso do ponteiro void *
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Java 16
Java 16Java 16
Java 16
 
Java9
Java9Java9
Java9
 
Editor de texto VI
Editor de texto VIEditor de texto VI
Editor de texto VI
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivos
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
1 exercicio funcoes com string e manipulacao com arquivo
1 exercicio  funcoes com string e manipulacao com arquivo1 exercicio  funcoes com string e manipulacao com arquivo
1 exercicio funcoes com string e manipulacao com arquivo
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
Java annotation
Java annotationJava annotation
Java annotation
 
Python
PythonPython
Python
 

Semelhante a Java Básico :: Stream

Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010
Maurício Linhares
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
Erisvaldo Junior
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
Regis Magalhães
 

Semelhante a Java Básico :: Stream (20)

Aula Persistência 01 (Java)
Aula Persistência 01 (Java)Aula Persistência 01 (Java)
Aula Persistência 01 (Java)
 
Cap10
Cap10Cap10
Cap10
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
03 fundamentos java
03 fundamentos java03 fundamentos java
03 fundamentos java
 
Linguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação JavaLinguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação Java
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
Unidade05
Unidade05Unidade05
Unidade05
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Aula JPA
Aula JPAAula JPA
Aula JPA
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
Revisão de C# 4.0
Revisão de C# 4.0Revisão de C# 4.0
Revisão de C# 4.0
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
 

Mais de Wesley R. Bezerra

Lógica de Programação - Tipos de dados
Lógica de Programação - Tipos de dadosLógica de Programação - Tipos de dados
Lógica de Programação - Tipos de dados
Wesley R. Bezerra
 

Mais de Wesley R. Bezerra (20)

Wordpress :: Plugins - visão geral
Wordpress :: Plugins - visão geralWordpress :: Plugins - visão geral
Wordpress :: Plugins - visão geral
 
Wordpress :: Ambiente administrativo
Wordpress :: Ambiente administrativoWordpress :: Ambiente administrativo
Wordpress :: Ambiente administrativo
 
Wordpress :: Alterando aparência
Wordpress :: Alterando aparênciaWordpress :: Alterando aparência
Wordpress :: Alterando aparência
 
Wordpress :: Configurar seu blog
Wordpress :: Configurar seu blogWordpress :: Configurar seu blog
Wordpress :: Configurar seu blog
 
Java Básico
Java BásicoJava Básico
Java Básico
 
Lógica de Programação - Procedimento
Lógica de Programação - ProcedimentoLógica de Programação - Procedimento
Lógica de Programação - Procedimento
 
Lógica de Programação - Vetor
Lógica de Programação - VetorLógica de Programação - Vetor
Lógica de Programação - Vetor
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetição
 
Lógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalLógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicional
 
Lógica de Programação - Operadores
Lógica de Programação - OperadoresLógica de Programação - Operadores
Lógica de Programação - Operadores
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dados
 
Lógica de Programação - Tipos de dados
Lógica de Programação - Tipos de dadosLógica de Programação - Tipos de dados
Lógica de Programação - Tipos de dados
 
Lógica de Programação - Estrutura algoritmo
Lógica de Programação - Estrutura algoritmoLógica de Programação - Estrutura algoritmo
Lógica de Programação - Estrutura algoritmo
 
Lógica de Programação - Fluxograma
Lógica de Programação - FluxogramaLógica de Programação - Fluxograma
Lógica de Programação - Fluxograma
 
Lógica de Programação - Introdução
Lógica de Programação - IntroduçãoLógica de Programação - Introdução
Lógica de Programação - Introdução
 
Wordpress Introdução ao Desenvolvimento de Templates
Wordpress Introdução ao Desenvolvimento de TemplatesWordpress Introdução ao Desenvolvimento de Templates
Wordpress Introdução ao Desenvolvimento de Templates
 
Wordpress - bloginfo()
Wordpress - bloginfo()Wordpress - bloginfo()
Wordpress - bloginfo()
 
Wordpress Arquivo de Configuração
Wordpress Arquivo de ConfiguraçãoWordpress Arquivo de Configuração
Wordpress Arquivo de Configuração
 
Wordpress Introdução a Plugins
Wordpress Introdução a PluginsWordpress Introdução a Plugins
Wordpress Introdução a Plugins
 
Worpress Introdução a Temas
Worpress Introdução a TemasWorpress Introdução a Temas
Worpress Introdução a Temas
 

Último

TAMPINHAS Sílabas. Para fazer e trabalhar com as crianças.
TAMPINHAS Sílabas. Para fazer e trabalhar com as crianças.TAMPINHAS Sílabas. Para fazer e trabalhar com as crianças.
TAMPINHAS Sílabas. Para fazer e trabalhar com as crianças.
FLAVIA LEZAN
 
APOSTILA- COMPLETA De FILOSOFIA-DA-EDUCAÇÃO.pdf
APOSTILA- COMPLETA  De FILOSOFIA-DA-EDUCAÇÃO.pdfAPOSTILA- COMPLETA  De FILOSOFIA-DA-EDUCAÇÃO.pdf
APOSTILA- COMPLETA De FILOSOFIA-DA-EDUCAÇÃO.pdf
lbgsouza
 
4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf
LindinhaSilva1
 
Historia-em-cartaz-Lucas-o-menino-que-aprendeu-a-comer-saudavel- (1).pdf
Historia-em-cartaz-Lucas-o-menino-que-aprendeu-a-comer-saudavel- (1).pdfHistoria-em-cartaz-Lucas-o-menino-que-aprendeu-a-comer-saudavel- (1).pdf
Historia-em-cartaz-Lucas-o-menino-que-aprendeu-a-comer-saudavel- (1).pdf
andreaLisboa7
 
ATIVIDADE 2 - GQ - COMUNICAÇÃO EMPRESARIAL E NEGOCIAÇÃO - 52_2024
ATIVIDADE 2 - GQ - COMUNICAÇÃO EMPRESARIAL E NEGOCIAÇÃO - 52_2024ATIVIDADE 2 - GQ - COMUNICAÇÃO EMPRESARIAL E NEGOCIAÇÃO - 52_2024
ATIVIDADE 2 - GQ - COMUNICAÇÃO EMPRESARIAL E NEGOCIAÇÃO - 52_2024
azulassessoria9
 

Último (20)

Abuso Sexual da Criança e do adolescente
Abuso Sexual da Criança e do adolescenteAbuso Sexual da Criança e do adolescente
Abuso Sexual da Criança e do adolescente
 
TAMPINHAS Sílabas. Para fazer e trabalhar com as crianças.
TAMPINHAS Sílabas. Para fazer e trabalhar com as crianças.TAMPINHAS Sílabas. Para fazer e trabalhar com as crianças.
TAMPINHAS Sílabas. Para fazer e trabalhar com as crianças.
 
Meu corpo - Ruth Rocha e Anna Flora livro
Meu corpo - Ruth Rocha e Anna Flora livroMeu corpo - Ruth Rocha e Anna Flora livro
Meu corpo - Ruth Rocha e Anna Flora livro
 
Nós Propomos! Sertã 2024 - Geografia C - 12º ano
Nós Propomos! Sertã 2024 - Geografia C - 12º anoNós Propomos! Sertã 2024 - Geografia C - 12º ano
Nós Propomos! Sertã 2024 - Geografia C - 12º ano
 
Descrever e planear atividades imersivas estruturadamente
Descrever e planear atividades imersivas estruturadamenteDescrever e planear atividades imersivas estruturadamente
Descrever e planear atividades imersivas estruturadamente
 
Apostila-Letramento-e-alfabetização-2.pdf
Apostila-Letramento-e-alfabetização-2.pdfApostila-Letramento-e-alfabetização-2.pdf
Apostila-Letramento-e-alfabetização-2.pdf
 
ufcd_9649_Educação Inclusiva e Necessidades Educativas Especificas_índice.pdf
ufcd_9649_Educação Inclusiva e Necessidades Educativas Especificas_índice.pdfufcd_9649_Educação Inclusiva e Necessidades Educativas Especificas_índice.pdf
ufcd_9649_Educação Inclusiva e Necessidades Educativas Especificas_índice.pdf
 
APOSTILA- COMPLETA De FILOSOFIA-DA-EDUCAÇÃO.pdf
APOSTILA- COMPLETA  De FILOSOFIA-DA-EDUCAÇÃO.pdfAPOSTILA- COMPLETA  De FILOSOFIA-DA-EDUCAÇÃO.pdf
APOSTILA- COMPLETA De FILOSOFIA-DA-EDUCAÇÃO.pdf
 
APH- Avaliação de cena , analise geral do ambiente e paciente.
APH- Avaliação de cena , analise geral do ambiente e paciente.APH- Avaliação de cena , analise geral do ambiente e paciente.
APH- Avaliação de cena , analise geral do ambiente e paciente.
 
O que é, de facto, a Educação de Infância
O que é, de facto, a Educação de InfânciaO que é, de facto, a Educação de Infância
O que é, de facto, a Educação de Infância
 
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
Slides Lição 8, Betel, Ordenança para confessar os pecados e perdoar as ofens...
 
Poema - Aedes Aegypt.
Poema - Aedes Aegypt.Poema - Aedes Aegypt.
Poema - Aedes Aegypt.
 
Multiplicação - Caça-número
Multiplicação - Caça-número Multiplicação - Caça-número
Multiplicação - Caça-número
 
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
UFCD_9184_Saúde, nutrição, higiene, segurança, repouso e conforto da criança ...
 
4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf4 ano atividade fonema e letra 08.03-1.pdf
4 ano atividade fonema e letra 08.03-1.pdf
 
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdf
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdfROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdf
ROTINA DE ESTUDO-APOSTILA ESTUDO ORIENTADO.pdf
 
Historia-em-cartaz-Lucas-o-menino-que-aprendeu-a-comer-saudavel- (1).pdf
Historia-em-cartaz-Lucas-o-menino-que-aprendeu-a-comer-saudavel- (1).pdfHistoria-em-cartaz-Lucas-o-menino-que-aprendeu-a-comer-saudavel- (1).pdf
Historia-em-cartaz-Lucas-o-menino-que-aprendeu-a-comer-saudavel- (1).pdf
 
Sistema de Acompanhamento - Diário Online 2021.pdf
Sistema de Acompanhamento - Diário Online 2021.pdfSistema de Acompanhamento - Diário Online 2021.pdf
Sistema de Acompanhamento - Diário Online 2021.pdf
 
ATIVIDADE 2 - GQ - COMUNICAÇÃO EMPRESARIAL E NEGOCIAÇÃO - 52_2024
ATIVIDADE 2 - GQ - COMUNICAÇÃO EMPRESARIAL E NEGOCIAÇÃO - 52_2024ATIVIDADE 2 - GQ - COMUNICAÇÃO EMPRESARIAL E NEGOCIAÇÃO - 52_2024
ATIVIDADE 2 - GQ - COMUNICAÇÃO EMPRESARIAL E NEGOCIAÇÃO - 52_2024
 
o-homem-que-calculava-malba-tahan-1_123516.pdf
o-homem-que-calculava-malba-tahan-1_123516.pdfo-homem-que-calculava-malba-tahan-1_123516.pdf
o-homem-que-calculava-malba-tahan-1_123516.pdf
 

Java Básico :: Stream

  • 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.
  • 7. Principais subclasses de InputStream • ByteArrayInputStream • FileInputStream • FilterInputStream • BufferedInputStream • DataInputStream • PushbackInputStream • ObjectInputStream • PipedInputStream • SequenceInputStream
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 13. 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.
  • 14. 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.
  • 15. 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.
  • 16. 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.
  • 17. Principais interfaces de OutputStream • ByteArrayOutputStream • FileOutputStream • FilterOutputStream • BufferedOutputStream • DataOutputStream • PrintStream • ObjectOutputStream • PipedOutputStream
  • 18. 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();
  • 19. FileOutputStream • É a classe utilizada para escrever dados em um arquivo(File) ou em um descritor de arquivo (FileDescriptor).
  • 20. 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.
  • 21. 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.
  • 22. 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.
  • 23. PrintStream • Esta classe adiciona a outro stream de saída a funcionalidade de imprimir representações de vários valores de dados.
  • 24. 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.
  • 25. 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.
  • 26. 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?
  • 27. 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.