SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Curso de Java
by Antonio Rodrigues Carvalho Neto
Recursos
Avançados
Streams
Streams
O Java permite o acesso a uma série de dispositivos (Teclado, Disco,
Portas Seriais, etc).
Para acessar um dispositivo é preciso criar um fluxo “Stream” o qual
carinhosamente chamaremos de “Canudo”. Através deste canudo será
possível enviar e receber dados do dispositivo.
Há fluxos separados para enviar dados (Output) e receber dados (Input),
para acessá-los é preciso criar canudos de Input e/ou Output
Aplicativo
Java
Dispositivo
10101100 00110101
Aplicativo
Java
Dispositivo
10101100 00110101
Input
Output
Streams
Há dois tipos de “canudos” usados para
acessar o dispositivo.
Os Finos conhecidos como Byte Streams
(8bits)
Os Grossos conhecidos como Character
Streams (16 bits)
Streams – Byte Streams
Byte Streams, trafegam um byte de cada vez, e
normalmente é utilizado para transmitir informações
binárias como Images, Sons, Objetos, etc..
Os Byte Streams decendem da classe InputStream e
OutputStream
Streams – Character Streams
Character Streams, trafegam dois byte de cada vez, e
normalmente é utilizado para transmitir textos como
Simple Texts, Scripts, XMLs, HTMLs..
Os Character Streams decendem da classe Reader e
Writer
Streams
Por mais que existam métodos que permitam ler ou
gravar informações de uma só vez, os dados são
sempre lidos e gravados Byte a Byte ou Caractere a
Caractere no dispositivo.
Streams – Exemplo Gravação
Para gravar a String “Hello” em um arquivo texto, é
preciso seguir as atividades :
1. Criar um ponteiro para o arquivo
File f = new File (“C:/teste.txt”);
2. Criar um Stream de Output para o arquivo, e como vamos
gravar texto vamos usar o Character Stream de Output. Os
Character Streams de saída herdam da classe Writer
Escolher o melhor stream para o dispositivo, neste caso vamos
usar o FileWriter
FileWriter fw = new FileWriter ( f );
3. Enviar os dados para o dispositivo
fw.write (“Hello”);
4. Fechar o dispositivo
fw.close ();
Exercício
Faça um programa que grave seu nome
no arquivo C:/nome.txt
Streams – Exemplo Leitura
Para ler o texto de um arquivo e imprimí-lo na tela é preciso seguir as
atividades :
1. Criar um ponteiro para o arquivo
File f = new File (“C:/teste.txt”);
2. Criar um Stream de Input para o arquivo, e como vamos ler texto vamos usar
o Character Stream de Input. Os Character Streams de entrada herdam da
classe Reader
Escolher o melhor stream para o dispositivo, neste caso vamos usar o FileReader
FileReader fr = new FileReader ( f );
3. Ler os dados do dispositivo
Os dados devem ser lidos caracter a caracter, portanto cada vez que o comando
read for executado ele irá trazer um conjunto de dois bytes do arquivo.
int a = fr.read (); // Le o conjunto de dois bytes
char c = (char) a; // Converte os dois bytes para caractere
System.out.print ( c );
4. Fechar o dispositivo
fr.close ();
Nota : Para ler todos os caracteres do arquivo será preciso fazer um
loop até que o resultado do método read seja igual a -1
Exercício
Faça um programa que leia todos os bytes
do arquivo C:/Windows/setuplog.txt e
mostre-os na tela.
Dica: Você pode ir mostrando as
informações na tela a medida em que vai
lendo do arquivo.
Exercício
Faça um programa que pergunte uma série de nomes
para o usuário e conforme o usuário vai digitando os
nomes e teclando enter o programa vai gravando estes
nomes no arquivo C:/texto.txt. O sistema vai pedir para o
usuário digitar os nomes até que ele digite um nome
igual a “sair”.
Desafio : Modifique o programa anterior convertendo os
caracteres lidos “A”, “B” e “C” para os números “1”, “2”,
“3”. E grave no arquivo os números ao invés das letras.
Referências
Java como programar 6ª edição
Capítulo 14
pags. 495 a 514
Use a cabeça Java 2ª edição
Capitulo 14
pags. 301 a 303
pags. 312 a 320
Caelum Java e Orientação a Objetos
Capítulo 15
pags. 174 a 184

Más contenido relacionado

La actualidad más candente

Elementos do Sistema Operacionais
Elementos do Sistema OperacionaisElementos do Sistema Operacionais
Elementos do Sistema OperacionaisJailson Torquato
 
Introdução a Java IO
Introdução a Java IOIntrodução a Java IO
Introdução a Java IOrdgse
 
Java: Manipulação de Arquivos
Java:  Manipulação  de ArquivosJava:  Manipulação  de Arquivos
Java: Manipulação de ArquivosArthur Emanuel
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2PeslPinguim
 
Apresentação java io
Apresentação java ioApresentação java io
Apresentação java ioSilvino Neto
 
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Poo1   aula 3 - java - comentários instruções e blocos-palavras chavePoo1   aula 3 - java - comentários instruções e blocos-palavras chave
Poo1 aula 3 - java - comentários instruções e blocos-palavras chaveDenis Sobrenome
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)Armando Daniel
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Ficha javacc
Ficha javaccFicha javacc
Ficha javaccÆx Lynx
 
Java básico - módulo 03: captura de dados
Java  básico - módulo 03: captura de dadosJava  básico - módulo 03: captura de dados
Java básico - módulo 03: captura de dadosProfessor Samuel Ribeiro
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2michellobo
 
Curso De Shell Aula 1
Curso De Shell   Aula 1Curso De Shell   Aula 1
Curso De Shell Aula 1Felipe Santos
 

La actualidad más candente (20)

Java Básico :: Stream
Java Básico :: StreamJava Básico :: Stream
Java Básico :: Stream
 
String tokenizer
String tokenizerString tokenizer
String tokenizer
 
Elementos do Sistema Operacionais
Elementos do Sistema OperacionaisElementos do Sistema Operacionais
Elementos do Sistema Operacionais
 
Introdução a Java IO
Introdução a Java IOIntrodução a Java IO
Introdução a Java IO
 
Java: Manipulação de Arquivos
Java:  Manipulação  de ArquivosJava:  Manipulação  de Arquivos
Java: Manipulação de Arquivos
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2
 
Apresentação java io
Apresentação java ioApresentação java io
Apresentação java io
 
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Poo1   aula 3 - java - comentários instruções e blocos-palavras chavePoo1   aula 3 - java - comentários instruções e blocos-palavras chave
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
Shell script i
Shell script iShell script i
Shell script i
 
Shell script
Shell scriptShell script
Shell script
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Ficha javacc
Ficha javaccFicha javacc
Ficha javacc
 
Python com TDD
Python com TDDPython com TDD
Python com TDD
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 
SFD - C# para a comunidade
SFD - C# para a comunidadeSFD - C# para a comunidade
SFD - C# para a comunidade
 
Java básico - módulo 03: captura de dados
Java  básico - módulo 03: captura de dadosJava  básico - módulo 03: captura de dados
Java básico - módulo 03: captura de dados
 
JavaCC
JavaCCJavaCC
JavaCC
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2
 
Curso De Shell Aula 1
Curso De Shell   Aula 1Curso De Shell   Aula 1
Curso De Shell Aula 1
 

Destacado

Java introdução ao eclipse
Java   introdução ao eclipseJava   introdução ao eclipse
Java introdução ao eclipseArmando Daniel
 
Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connectionArmando Daniel
 
Associações entre classes
Associações entre classesAssociações entre classes
Associações entre classesIvan Fonseca
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layoutsArmando Daniel
 
Programação orientada a objetos: herança
Programação orientada a objetos: herançaProgramação orientada a objetos: herança
Programação orientada a objetos: herançaIvan Ricarte
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizesArmando Daniel
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 

Destacado (8)

Java code conventions
Java code conventionsJava code conventions
Java code conventions
 
Java introdução ao eclipse
Java   introdução ao eclipseJava   introdução ao eclipse
Java introdução ao eclipse
 
Java recursos avançados - socket connection
Java   recursos avançados - socket connectionJava   recursos avançados - socket connection
Java recursos avançados - socket connection
 
Associações entre classes
Associações entre classesAssociações entre classes
Associações entre classes
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layouts
 
Programação orientada a objetos: herança
Programação orientada a objetos: herançaProgramação orientada a objetos: herança
Programação orientada a objetos: herança
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizes
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 

Similar a Java recursos avançados - streams

Linguagem C - Arquivos [exercícios]
Linguagem C - Arquivos [exercícios]Linguagem C - Arquivos [exercícios]
Linguagem C - Arquivos [exercícios]Matheus Alves
 
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
 
Inter Aula1
Inter  Aula1Inter  Aula1
Inter Aula1willians
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivosTiago
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Flávio Ribeiro
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonSidney Roberto
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
java.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivosjava.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivosMarcello Thiry
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivossamuelthiago
 

Similar a Java recursos avançados - streams (20)

Linguagem C - Arquivos [exercícios]
Linguagem C - Arquivos [exercícios]Linguagem C - Arquivos [exercícios]
Linguagem C - Arquivos [exercícios]
 
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/
 
Aula Persistência 01 (Java)
Aula Persistência 01 (Java)Aula Persistência 01 (Java)
Aula Persistência 01 (Java)
 
Inter Aula1
Inter  Aula1Inter  Aula1
Inter Aula1
 
Filestream sistema arquivos
Filestream  sistema arquivosFilestream  sistema arquivos
Filestream sistema arquivos
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com Python
 
Aula 1
Aula 1Aula 1
Aula 1
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Workshop Python.2
Workshop Python.2Workshop Python.2
Workshop Python.2
 
Java9
Java9Java9
Java9
 
java.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivosjava.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivos
 
Files’’ c
Files’’ cFiles’’ c
Files’’ c
 
Files’’ c
Files’’ cFiles’’ c
Files’’ c
 
Files’’ c
Files’’ cFiles’’ c
Files’’ c
 
Resumo Windows
Resumo WindowsResumo Windows
Resumo Windows
 
Programando em python arquivos
Programando em python   arquivosProgramando em python   arquivos
Programando em python arquivos
 
Entrada e Saída
Entrada e SaídaEntrada e Saída
Entrada e Saída
 
Java 15
Java 15Java 15
Java 15
 

Java recursos avançados - streams

  • 1. Curso de Java by Antonio Rodrigues Carvalho Neto
  • 4. Streams O Java permite o acesso a uma série de dispositivos (Teclado, Disco, Portas Seriais, etc). Para acessar um dispositivo é preciso criar um fluxo “Stream” o qual carinhosamente chamaremos de “Canudo”. Através deste canudo será possível enviar e receber dados do dispositivo. Há fluxos separados para enviar dados (Output) e receber dados (Input), para acessá-los é preciso criar canudos de Input e/ou Output Aplicativo Java Dispositivo 10101100 00110101 Aplicativo Java Dispositivo 10101100 00110101 Input Output
  • 5. Streams Há dois tipos de “canudos” usados para acessar o dispositivo. Os Finos conhecidos como Byte Streams (8bits) Os Grossos conhecidos como Character Streams (16 bits)
  • 6. Streams – Byte Streams Byte Streams, trafegam um byte de cada vez, e normalmente é utilizado para transmitir informações binárias como Images, Sons, Objetos, etc.. Os Byte Streams decendem da classe InputStream e OutputStream
  • 7. Streams – Character Streams Character Streams, trafegam dois byte de cada vez, e normalmente é utilizado para transmitir textos como Simple Texts, Scripts, XMLs, HTMLs.. Os Character Streams decendem da classe Reader e Writer
  • 8. Streams Por mais que existam métodos que permitam ler ou gravar informações de uma só vez, os dados são sempre lidos e gravados Byte a Byte ou Caractere a Caractere no dispositivo.
  • 9. Streams – Exemplo Gravação Para gravar a String “Hello” em um arquivo texto, é preciso seguir as atividades : 1. Criar um ponteiro para o arquivo File f = new File (“C:/teste.txt”); 2. Criar um Stream de Output para o arquivo, e como vamos gravar texto vamos usar o Character Stream de Output. Os Character Streams de saída herdam da classe Writer Escolher o melhor stream para o dispositivo, neste caso vamos usar o FileWriter FileWriter fw = new FileWriter ( f ); 3. Enviar os dados para o dispositivo fw.write (“Hello”); 4. Fechar o dispositivo fw.close ();
  • 10. Exercício Faça um programa que grave seu nome no arquivo C:/nome.txt
  • 11. Streams – Exemplo Leitura Para ler o texto de um arquivo e imprimí-lo na tela é preciso seguir as atividades : 1. Criar um ponteiro para o arquivo File f = new File (“C:/teste.txt”); 2. Criar um Stream de Input para o arquivo, e como vamos ler texto vamos usar o Character Stream de Input. Os Character Streams de entrada herdam da classe Reader Escolher o melhor stream para o dispositivo, neste caso vamos usar o FileReader FileReader fr = new FileReader ( f ); 3. Ler os dados do dispositivo Os dados devem ser lidos caracter a caracter, portanto cada vez que o comando read for executado ele irá trazer um conjunto de dois bytes do arquivo. int a = fr.read (); // Le o conjunto de dois bytes char c = (char) a; // Converte os dois bytes para caractere System.out.print ( c ); 4. Fechar o dispositivo fr.close (); Nota : Para ler todos os caracteres do arquivo será preciso fazer um loop até que o resultado do método read seja igual a -1
  • 12. Exercício Faça um programa que leia todos os bytes do arquivo C:/Windows/setuplog.txt e mostre-os na tela. Dica: Você pode ir mostrando as informações na tela a medida em que vai lendo do arquivo.
  • 13. Exercício Faça um programa que pergunte uma série de nomes para o usuário e conforme o usuário vai digitando os nomes e teclando enter o programa vai gravando estes nomes no arquivo C:/texto.txt. O sistema vai pedir para o usuário digitar os nomes até que ele digite um nome igual a “sair”. Desafio : Modifique o programa anterior convertendo os caracteres lidos “A”, “B” e “C” para os números “1”, “2”, “3”. E grave no arquivo os números ao invés das letras.
  • 14. Referências Java como programar 6ª edição Capítulo 14 pags. 495 a 514 Use a cabeça Java 2ª edição Capitulo 14 pags. 301 a 303 pags. 312 a 320 Caelum Java e Orientação a Objetos Capítulo 15 pags. 174 a 184