Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)

Slides:



Advertisements
Apresentações semelhantes
Programação orientada a objetos
Advertisements

Python: Entrada e Saída
Programação em Java Prof. Maurício Braga
I/O Carlos Bazilio Depto de Ciência e Tecnologia
Construção de Algoritmos 2
Programação em Java Prof. Maurício Braga
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Comunicação entre processos distribuídos
Tratamento de Exceções
Prof. Thiago Pereira Rique
Persistência de objetos em arquivo texto usando Java
Programação Básica em Java
Streams Java.
Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:
Tratamento de Ficheiros
Excepções e Streams em Java
Introdução a Programação JAVA
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Threads: Introdução e Implementação
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Nazareno Andrade (baseado no material de Hyggo Almeida)
1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.
Streams –input e output
Hashing - Espalhamento
Linguagem técnica de programação I Java
Aula Prática 12 Operações com Arquivos Monitoria
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Arquivo.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
By Ducheno Kelly Centro de Formação São Domingos.
BC-0502 Metodologia e Algoritmos Computacionais Santo André, Abril de Arquivos em Java.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Capítulo 10. Stream – Fluxo I/O  Acessando o sistema de arquivos java.io.File  Gravação em arquivos texto java.io.FileWriter java.io.BufferedWriter.
Stream – Fluxo I/O Manipulação de arquivos texto
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
1 JAVA I/O (Entrada e Saída em JAVA) Prof. Alexandre Monteiro Recife.
Profa. Patrícia A. Jaques
Aula 2 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Programação Orientada a Objetos - Java
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
CLASSE ARQUIVO Comandos Básicos. Criação da variável Arquivo nomeDoArquivo = new Arquivo ( “nomeDoArquivo.in”, “nomeDoArquivo.out” ); nomeDoArquivo.in.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Capítulo 6 Exceções.
Estrutura de Controle em JAVA
Operações com Arquivos Monitoria A estrutura FILE  É como um tipo de dado, mas não é um tipo propriamente dito  Definido no arquivo cabeçalho.
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
April 05 Prof. Ismael H. F. Santos - 1 Modulo II – Tópicos em Java - IO Prof. Ismael H F Santos.
Linguagem I Strings.
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Conceitos Básicos e Manipulação de Objetos
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Socket em Java.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Programação Distribuída em Java Aula Na aula passada vimos: Introdução –O que podemos fazer na rede Conceito de Rede –Máquinas conectadas Protocolos.
Introdução ao C++ para programadores OO Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira {fcfl, jpsml,
Arquivos. Os computadores utilizam os arquivos como estruturas de dados para armazenamento de longo prazo de grandes volumes de dados. Dados mantidos.
© Copyright 2008 Algoritmos e Estruturas de Dados 1 IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório Fernandes Lins Arthur Cavalcanti.
Laboratório de Programação II Método main Dados e Métodos de Classes.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.
Capítulo 10. Stream – Fluxo I/O  Introdução  Principais Exceptions  Arquivos binários java.io.InputStream java.io.FileInputStream java.io.ByteArrayInputStream.
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Tipos de Arquivos Arquivos podem armazenar caracteres (arquivo texto) ou bytes (arquivos binários); Na prática, arquivos textos são abertos por editores.
Transcrição da apresentação:

Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)

Roteiro Persistência –Pra quê? Arquivos –TextFile –JavaFile –RandomFile

Persistência... pra quê? Não perder os dados no fim da execução de um programa –Memória temporária principal Mais rápida e cara –Memória permanente secundária mais lenta e barata

Arquivos Streams de bytes Não existem tipos Cadeias de bytes – como os dados são representados na memória

Arquivos TextFile JavaFile RandomJavaFile

TextFile Arquivos texto Legíveis por um ser humano Unidade básica: char

Exemplo TextFile public class TesteTextFile { public static void main(String args[]) { String str = "Testando a classe TextFile"; try { TextFile arquivo = new TextFile("java.in", "java.txt"); arquivo.writeString(str); arquivo.close(); } catch (FileNotFoundException e) { MiniJavaSystem console = new MiniJavaSystem(); console.println("O arquivo não foi achado!"); } catch (IOException e) { MiniJavaSystem console = new MiniJavaSystem(); console.println("Algum problema ocorreu."); }

JavaFile Arquivos binários Ilegíveis Escrita de Objetos –Serializable Unidade básica: byte

Exemplo public class TesteJavaFile { public static void main(String args[]) { Conta c1 = new Conta(123, "123-0"); try { JavaFile arquivo = new JavaFile("java.in", "java.txt"); arquivo.writeObject(c1); arquivo.close(); } catch (FileNotFoundException e) { MiniJavaSystem console = new MiniJavaSystem(); console.println("O arquivo não foi achado!"); } catch (IOException e) { MiniJavaSystem console = new MiniJavaSystem(); console.println("Algum problema ocorreu."); }

Random Java file TextFile e JavaFile  acesso seqüencial –Escrita contínua RandomJavaFile  Acesso randômico –Qualquer lugar do arquivo seek(long distancia) skipBytes(int distancia) Leitura (r)  ex: readInt() –boolean byte char double int String … escrita (rw)  ex: writeInt(int dado) –boolean char double int

Seqüencial x Randômico Acesso seqüencial Acesso randômico xy yx início

Revisão Qual o tamanho de um : –byte e boolean: 1 byte (8 bits) –char(Unicode) e short: 2 bytes (16 bits) –int e float: 4 bytes (32 bits) –double e long: 8 bytes (64 bits)

Exemplo RandomJavaFile (...) arquivo = new RandomJavaFile("java.bin", "r"); console.println("c1.saldo: " + arquivo.readInt()); console.println("c2.saldo: " + arquivo.readInt()); console.println("c1.numero: " + arquivo.readString()); console.println("c2.numero: " + arquivo.readString()); arquivo.close(); } catch (FileNotFoundException e) { console.println("O arquivo não foi achado!"); } catch (IOException e) { console.println("Algum problema ocorreu."); }

Exemplo Conta public class TesteRandomJavaFile { public static void main(String args[]) { Conta c1 = new Conta(123, "123-0"); Conta c2 = new Conta(456, "456-7"); MiniJavaSystem console = new MiniJavaSystem(); try { RandomJavaFile arquivo = new RandomJavaFile("java.bin", "rw"); arquivo.writeInt(c1.getSaldo()); arquivo.writeInt(c2.getSaldo()); arquivo.writeString(c1.getNumero()); arquivo.writeString(c2.getNumero()); arquivo.close(); (...)

Escrevendo chars public static void main(String args[]) { String a = ""; try { TextFile r = new TextFile("conta.out", "testeInteiroTexto.txt"); r.writeString(a); r.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

Escrevendo bytes public static void main(String[] args) { int a = 10000; try { RandomJavaFile r = new RandomJavaFile ("testeInteiroBinario.txt", "rw"); r.writeInt(a); r.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

java.io –InputStream OutputStream (abstratas) Leitura e escrita de arquivos binários –FileInputStream FileOutputStream leitura e escrita de bytes em arquivos –DataInputStream/DataOutputStream Escrita e leitura de tipos primitivos –ObjectInputStream/ObjectOutputStream Escrita e leitura de Objetos

java.io –Reader/Writer Leitura e escrita de texto –FileReader/FileWriter Leitura e escrita de texto em arquivos –BufferedReader/PrintWriter Escrita e leitura de Strings

Filtros Ler dados como bytes brutos é rápido, mas grosseiro; Normalmente, lêem-se os agregados de bytes que formam int s, float s, double s... Algumas classes são capazes de ler um conjunto de bytes e transformá-las para tipos primitivos. (Ex.: RandomJavaFile)

Buffering Transferência física de saída  operação lenta se comparada com as velocidades do processador e da memória principal; Armazenamento em buffer (buffering)  melhorias significativas de desempenho de entrada e saída; flush()  força o envio a qualquer momento;

Buffering Escrita Leitura Arquivo

Buffering

Tipos Primitivos

Objetos

Resumindo Uso de arquivos para armazenar dados a longo prazo; Java vê cada arquivo como um fluxo seqüencial de bytes  Os dados são representados na memória como bytes; Os dados em muitos arquivos seqüenciais não podem ser modificados sem o risco de destruir parte desses dados  O arquivo geralmente é regravado por inteiro; Arquivos de acesso aleatório  registros de tamanho fixo. TextFileJavaFileRandomJavaFile Arquivo de textoArquivo binário Legível por humanoNão legível por humano charbyte Acesso seqüencial Acesso aleatório