Curso Superior de Tecnologia emtelemática Programação Orientada a Objetos Streams em Java. Copyright 2010 Prof. César Rocha



Documentos relacionados
Programação II Java Streams. Christopher Burrows

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Ler e escrever bytes, caracteres e Strings de/para a entrada e saída padrão. Ler e escrever bytes, caracteres e Strings de/para arquivos

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.


Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

Exercícios de Revisão Java Básico

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Ficheiros. Ficheiros - Motivação. Streams. Entrada Binária. Não. Ficheiro

Roteiro. Introdução a Arquivos. Streams Serialização Arquivos de Acesso Randômico Exercícios. Armazenamento. Dados em vetores, listas e variáveis

Módulo VIII Linguagem Java Entrada e Saída de Dados Arquivos

Arquivos. Profa. Thienne Johnson EACH/USP

Programação de Redes de Computadores em Java

Capítulo 6. Java IO - Ficheiros

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

STREAMS (FLUXOS) EM JAVA uma Introdução

P R O G R A M A. Stream Stream. Stream. Figura 1. Streams representam fluxos unidirecionais de dados, seja em entrada ou saída.

Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. José Valente de Oliveira 16-1

Em JAVA, todas as considerações (ou quase todas) que se relacionam com as mais

LP2 Laboratório de Programação 2 Ciência da Computação. Arquivos

Aula 2 APIs Básicas de Java

Programação de Computadores - I. Profª Beatriz Profº Israel

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Java : Comunicação Cliente-Servidor.

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Java 2 Standard Edition Como criar classes e objetos

Desenvolvimento Orientado a Objetos com Java

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Programação de Computadores II TCC /Turma A 1

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Herança. Alberto Costa Neto DComp - UFS

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Introdução a Java. Hélder Nunes

SISTEMAS DISTRIBUÍDOS

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

A Linguagem Java. Alberto Costa Neto DComp - UFS

Configuração de Cliente de Web Service HTTPS

UNIVERSIDADE FEDERAL DO PARANÁ

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Orientação a Objetos com Java

POO Programação Orientada a Objetos. Classes em Java

insfcanceof new public switch transient while byte continue extends for int null

Programação Orientada a Objetos em Java

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

BC0505 Processamento da Informação

Projeto de Software Orientado a Objeto

Reuso com Herança a e Composiçã

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Um pouco do Java. Prof. Eduardo

Algoritmos e Programação _ Departamento de Informática

Herança. Algoritmos e Programação II. Aula 5 Herança

Aula 30 - Sockets em Java

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções

Prof. Esp. Adriano Carvalho

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Redes de Computadores /1

Algoritmos e Programação Estruturada

FTP FILE F TRANSFER PROTOCOL. Tópicos

Cliente-servidor com Sockets TCP

Manual de Envio de Torpedos SMS Comtele. Introdução Cadastrar um Grupo Inserir ou Importar Contatos Ordem de envio...

Persistência de Classes em Tabelas de Banco de Dados

Trabalho Prático Nº1 Introdução ao C#.NET

Java. Marcio de Carvalho Victorino

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

THREADS EM JAVA. George Gomes Cabral

FBV - Linguagem de Programação II. Um pouco sobre Java

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

JPA: Persistência padronizada em Java

CONEXÃ O NFS-E SISTEMÃ ISS-INTEL UTILIZÃNDO JÃVÃ E SSL

Natureza do Software e dos Sistemas

2 Orientação a objetos na prática

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Java 2 Standard Edition Fundamentos de

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Threads e Sockets em Java. Threads em Java. Programas e Processos

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Capítulo II Modelos de Programação Distribuída

Java Threads. Introdução

DEFINIÇÃO DE MÉTODOS

Transcrição:

Curso Superior de Tecnologia emtelemática Programação Orientada a Objetos Streams em Java Copyright 2010 Prof. César Rocha 1

Objetivos Explorar os conceitos fundamentais acerca do uso de streams de arquivos em Java Principais classes, abrindo conexões de streams, leitura e gravação de objetos com streams, serialização e boas práticas de programação. Como trocar dados com outros programas não-java Leitura e gravação de texto e caracteres com streams Exercícios e vários exemplos de códigos que você deve testar visando solidificar seus conhecimentos A diversidade de novas classes neste móduloé grande! 2

Motivação Vimos que uma aplicação Java possui diversos objetos cooperantes com estado e comportamento Cada objeto é único e possui seus próprios dados O quê fazer quando precisamos salvar todo o estado de um (ou mais) objeto(s) no disco? Aplicação bancária, onde todos os objetos Transação devem ser gravados em um arquivo de lote diário Um Jogo de computador, onde o estado atual de um Personagem deve ser gravado para uma sessão futura E quando a aplicaçãodeve trocarinformações com outros sistemas (muitas vezes não-oo)? 3

Alternativas Em Java, basicamente, há dois formatos possíveis para gravar dados em arquivos, conforme a seguir: ❶ Serialização: um arquivo irá guardar uma fila de objetos serializados. O conteúdo deste arquivo é quase ilegível, mas natural à JVM. Quando há necessidade de recuperar o objeto a partir do arquivo, ele é inflado e enviado para a memória, automaticamente ❷ Texto/Caracteres: um arquivo irá guardar uma cadeia de caracteres. Neste processo, o programador cria seu formato pessoal de armazenamento e pode compreendê-lo. Usa-se, geralmente, algum delimitador para materializar este formato 4

Passos para gravar objetos Seguem os passos básicos necessários para escrever (enviar) um objeto para um arquivo no disco: ❶ Criar um FileOutputStream: FileOutputStream fos = new FileOutputStream( arquivo.ser ); ❷ Criar um ObjectOutputStream: ObjectOutputStream oos = new ObjectOutputStream(fos); ❸ Gravar o objeto: Cliente c1 = new Cliente(); oos.writeobject(c1); ❹ Fechar a conexão: oos.close(); Note a concatenação. Dica: se arquivo.ser não existir no disco, ele será criado. 5

Interface Serializable Se sua classe precisa ser serializada, implemente a interface Serializable (marker interface) public class Cliente implements Serializable { private String nome; private double salario; Dica: estes valores serão salvos em arquivo.ser public Cliente(){... public String import getnome(){ java.io.fileoutputstream; import java.io.ioexception; public void import setnome(string java.io.objectoutputstream; n){ public double getsalario(){ public void public setsalario(double class GravaCliente s){ { public String public tostring(){ static void main( String[] args ) { Cliente c = new Cliente(); try { FileOutputStream fos = new FileOutputStream("arquivo.ser"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeobject(c); oos.close(); catch ( IOException e ) { e.printstacktrace(); 6

Importante E o queacontece quando o objeto possuivariáveis membros do tiporeferência (outros objetos)? Quandoum objeto é serializado, todaa árvore (hierarquia) que forma o objeto principal é serializada automaticamente Porém, os objetos membrostambém devem ser serializáveis, casocontráriouma exceção do tipo NotSerializableException será gerada. E o queacontece quando nãotemos acesso a classe membro para corrigir (alterar o código)? Podemosusar a herança de implementação (extends) 7

Passos para restaurar/ler objetos Seguem os passos básicos necessários para ler (restaurar) um objeto a partir de um arquivo: ❶ Criar um FileInputStream: FileInputStream fis = new ❷ Criar um ObjectInputStream: ObjectInputStream ois = new FileInputStream( arquivo.ser ); ObjectInputStream(fis); ❸ Ler o objeto: Cliente novo = (Cliente) ois.readobject(); ❹ Fechar a conexão: ois.close(); Note a concatenação. Dica: os objetos devem ser lidos na mesma ordem em que foram gravados anteriormente (fila). 8

Passos para gravar caracteres Seguem os passos básicos necessários para escrever (enviar) um texto para um arquivo no disco: ❶ Criar um FileWriter FileWriter fw = new FileWriter( arquivo.txt ); ❷ Concatená-lo com um BufferedWriter: BufferedWriter bw = new ❸ Gravar o texto: bw.write( Um texto ); ❹ Fechar a conexão: bw.close(); BufferedWriter(fw); Dica: O controle (separadores) deve ser feito pelo programador 9

Exemplo Lembre-se: o controle sobre toda a formataçãodo arquivo(separadores, quebras de linha, etc) é tarefa do programador do sistema import java.io.bufferedwriter; import java.io.filewriter; import java.io.ioexception; public class GravaTexto { public static void main( String[] args ) { try { FileWriter fw = new FileWriter("compras.txt"); BufferedWriter bw = new BufferedWriter(fw); bw.write("100"); bw.write( #"); bw.write("feijão"); bw.write("\n"); bw.write("200"); bw.write( #"); bw.write("arroz"); bw.write("\n"); bw.close(); catch ( IOException e ) { e.printstacktrace(); 10

Passos para ler caracteres Seguem os passos básicos necessários para ler (restaurar) um texto a partir de um arquivo: ❶ Criar um FileReader FileReader fr = new FileReader( arquivo.txt ); ❷ Concatená-lo com um BufferedReader: BufferedReader br = new BufferedReader(fr); ❸ Lê o texto: String s = br.readline(); ❹ Fechar a conexão: br.close(); Dica: quando não houver mais linhas, readline() retornará null 11

Exemplo O quê fazer paraextrair os dados em cima de cada uma das linhas presentes no arquivo? Use o método split() oua classe StringTokenizer import java.io.bufferedreader; import java.io.filereader; import java.io.ioexception; public class LeTexto { public static void main( String[] args ) { try { FileReader fr = new FileReader("compras.txt"); BufferedReader br = new BufferedReader(fr); String linha = null; while ( (linha = br.readline())!= null ) { String[] v = linha.split("#"); for ( String dado : v ) System.out.println(dado); br.close(); catch ( IOException e ) { e.printstacktrace(); 12

Para um bom aproveitamento: Codifique os exemplos mostrados nestes slides e verifique pontos de dúvidas Resolva todas as questões da lista de streams Procure o professor ou monitor da disciplina e questione conceitos, listas, etc. Não deixe para codificar tudo e acumular assunto para a avaliação. Este é apenas um dos assuntos abordados na prova! 13