SlideShare uma empresa Scribd logo
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
 
F I C+ + L P 05
F I C+ + L P 05F I C+ + L P 05
F I C+ + L P 05
t34m0nana
 
Java 13
Java 13Java 13
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
Rafael Cassau
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
Diemesleno Souza Carvalho
 
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
Alex Camargo
 
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 *
Alex Camargo
 
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
Giancarlo Silva
 
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
 
Java 16
Java 16Java 16
Java9
Java9Java9
Editor de texto VI
Editor de texto VIEditor de texto VI
Editor de texto VI
Ivani Nascimento
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivos
samuelthiago
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
FATEC São José dos Campos
 
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
 
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
Helio Colombe
 
Java annotation
Java annotationJava annotation
Java annotation
Natanael Fonseca
 
Python
PythonPython

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

Aula Persistência 01 (Java)
Aula Persistência 01 (Java)Aula Persistência 01 (Java)
Aula Persistência 01 (Java)
Fabio Moura Pereira
 
Cap10
Cap10Cap10
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/
Rodrigo Vieira
 
03 fundamentos java
03 fundamentos java03 fundamentos java
03 fundamentos java
Raytssa Martins
 
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
Escola Básica e Secundária da Povoação
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
Saulo Arruda
 
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
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
Tiago
 
Unidade05
Unidade05Unidade05
Unidade05
Ialis Cavalcante
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
Jamildo Feitosa
 
Aula JPA
Aula JPAAula JPA
Aula JPA
Marco Reis
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
Bianca Dantas
 
java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
GersonZavala2
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
Nécio de Lima Veras
 
Revisão de C# 4.0
Revisão de C# 4.0Revisão de C# 4.0
Revisão de C# 4.0
Mário Meyrelles
 
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
John Godoi
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
Mario Sergio
 
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

Wordpress :: Plugins - visão geral
Wordpress :: Plugins - visão geralWordpress :: Plugins - visão geral
Wordpress :: Plugins - visão geral
Wesley R. Bezerra
 
Wordpress :: Ambiente administrativo
Wordpress :: Ambiente administrativoWordpress :: Ambiente administrativo
Wordpress :: Ambiente administrativo
Wesley R. Bezerra
 
Wordpress :: Alterando aparência
Wordpress :: Alterando aparênciaWordpress :: Alterando aparência
Wordpress :: Alterando aparência
Wesley R. Bezerra
 
Wordpress :: Configurar seu blog
Wordpress :: Configurar seu blogWordpress :: Configurar seu blog
Wordpress :: Configurar seu blog
Wesley R. Bezerra
 
Java Básico
Java BásicoJava Básico
Java Básico
Wesley R. Bezerra
 
Lógica de Programação - Procedimento
Lógica de Programação - ProcedimentoLógica de Programação - Procedimento
Lógica de Programação - Procedimento
Wesley R. Bezerra
 
Lógica de Programação - Vetor
Lógica de Programação - VetorLógica de Programação - Vetor
Lógica de Programação - Vetor
Wesley R. Bezerra
 
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
Wesley R. Bezerra
 
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
Wesley R. Bezerra
 
Lógica de Programação - Operadores
Lógica de Programação - OperadoresLógica de Programação - Operadores
Lógica de Programação - Operadores
Wesley R. Bezerra
 
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
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
 
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
Wesley R. Bezerra
 
Lógica de Programação - Fluxograma
Lógica de Programação - FluxogramaLógica de Programação - Fluxograma
Lógica de Programação - Fluxograma
Wesley R. Bezerra
 
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
Wesley R. Bezerra
 
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
Wesley R. Bezerra
 
Wordpress - bloginfo()
Wordpress - bloginfo()Wordpress - bloginfo()
Wordpress - bloginfo()
Wesley R. Bezerra
 
Wordpress Arquivo de Configuração
Wordpress Arquivo de ConfiguraçãoWordpress Arquivo de Configuração
Wordpress Arquivo de Configuração
Wesley R. Bezerra
 
Wordpress Introdução a Plugins
Wordpress Introdução a PluginsWordpress Introdução a Plugins
Wordpress Introdução a Plugins
Wesley R. Bezerra
 
Worpress Introdução a Temas
Worpress Introdução a TemasWorpress Introdução a Temas
Worpress Introdução a Temas
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

347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
eaiprofpolly
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
JoeteCarvalho
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
cmeioctaciliabetesch
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
MarceloMonteiro213738
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
ValdineyRodriguesBez1
 
karl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vidakarl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vida
KleginaldoPaz2
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
Érika Rufo
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
joseanesouza36
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptxAVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AntonioVieira539017
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
HisrelBlog
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
PatriciaZanoli
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
LeticiaRochaCupaiol
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 

Último (20)

347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
D20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua PortuguesaD20 - Descritores SAEB de Língua Portuguesa
D20 - Descritores SAEB de Língua Portuguesa
 
slides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentarslides de Didática 2.pdf para apresentar
slides de Didática 2.pdf para apresentar
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
 
karl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vidakarl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vida
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptxAVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
AVALIAÇÃO DIAGNÓSTICA - 8º ANO 2024.pptx
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
 
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.pptLeis de Mendel - as ervilhas e a maneira simples de entender.ppt
Leis de Mendel - as ervilhas e a maneira simples de entender.ppt
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 

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.