SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Apresentação java io
Apresentação java ioApresentação java io
Apresentação java ioSilvino Neto
 
F I C+ + L P 05
F I C+ + L P 05F I C+ + L P 05
F I C+ + L P 05t34m0nana
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
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: ThreadsAlex 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 PythonGiancarlo 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 pythonAlvaro Oliveira
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivossamuelthiago
 
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 arquivoKievnny 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êsHelio Colombe
 

What's hot (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
 

Similar to Java I/O Streams

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
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Saulo 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 2010Maurí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 5Erisvaldo Junior
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivosTiago
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreadingBianca Dantas
 
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 01John 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 JavaRegis Magalhães
 

Similar to Java I/O Streams (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
 

More from Wesley R. Bezerra

Wordpress :: Plugins - visão geral
Wordpress :: Plugins - visão geralWordpress :: Plugins - visão geral
Wordpress :: Plugins - visão geralWesley R. Bezerra
 
Wordpress :: Ambiente administrativo
Wordpress :: Ambiente administrativoWordpress :: Ambiente administrativo
Wordpress :: Ambiente administrativoWesley R. Bezerra
 
Wordpress :: Alterando aparência
Wordpress :: Alterando aparênciaWordpress :: Alterando aparência
Wordpress :: Alterando aparênciaWesley R. Bezerra
 
Wordpress :: Configurar seu blog
Wordpress :: Configurar seu blogWordpress :: Configurar seu blog
Wordpress :: Configurar seu blogWesley R. Bezerra
 
Lógica de Programação - Procedimento
Lógica de Programação - ProcedimentoLógica de Programação - Procedimento
Lógica de Programação - ProcedimentoWesley R. Bezerra
 
Lógica de Programação - Vetor
Lógica de Programação - VetorLógica de Programação - Vetor
Lógica de Programação - VetorWesley 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çãoWesley 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 condicionalWesley R. Bezerra
 
Lógica de Programação - Operadores
Lógica de Programação - OperadoresLógica de Programação - Operadores
Lógica de Programação - OperadoresWesley 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 dadosWesley 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 dadosWesley 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 algoritmoWesley R. Bezerra
 
Lógica de Programação - Fluxograma
Lógica de Programação - FluxogramaLógica de Programação - Fluxograma
Lógica de Programação - FluxogramaWesley 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çãoWesley 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 TemplatesWesley R. Bezerra
 
Wordpress Arquivo de Configuração
Wordpress Arquivo de ConfiguraçãoWordpress Arquivo de Configuração
Wordpress Arquivo de ConfiguraçãoWesley R. Bezerra
 
Wordpress Introdução a Plugins
Wordpress Introdução a PluginsWordpress Introdução a Plugins
Wordpress Introdução a PluginsWesley R. Bezerra
 
Worpress Introdução a Temas
Worpress Introdução a TemasWorpress Introdução a Temas
Worpress Introdução a TemasWesley R. Bezerra
 

More from 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
 

Recently uploaded

Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...LuizHenriquedeAlmeid6
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfangelicass1
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfPPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfAnaGonalves804156
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESpatriciasofiacunha18
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira partecoletivoddois
 
19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileirosMary Alvarenga
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfErasmo Portavoz
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdfHABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdfdio7ff
 
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 anoAdelmaTorres2
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyasminlarissa371
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 

Recently uploaded (20)

Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdf
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfPPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
treinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppttreinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppt
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parte
 
19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdf
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdfHABILIDADES ESSENCIAIS  - MATEMÁTICA 4º ANO.pdf
HABILIDADES ESSENCIAIS - MATEMÁTICA 4º ANO.pdf
 
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
637743470-Mapa-Mental-Portugue-s-1.pdf 4 ano
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 

Java I/O Streams

  • 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.