Baixe o app para aproveitar ainda mais
Prévia do material em texto
ricardo.marcacini@ufms.br Prof. Ricardo M. Marcacini Curso: Algoritmos e Programação IIAlgoritmos e Programação II Manipulação de Arquivos (JAVA)Manipulação de Arquivos (JAVA) PARTE 2 – Arquivos BináriosPARTE 2 – Arquivos Binários Sistemas de Informação 2º Semestre / 2013 http://www.marcacini.com.br/ufms/ Aula 3 Escrita em Arquivos Binários FileOutputStream e DataOutputStream Leitura de Arquivos Binários FileInputStream e DataInputStream Eficiência de algoritmos com manipulação de arquivos ALG2-03-ARQUIVOS-PARTE2 2 Manipulação de Arquivo Binário Permite armazenar diferentes tipos de dados em seu formato de máquina (bytes) int, float, double, boolean, char, string É uma sequência (stream) de bytes ALG2-03-ARQUIVOS-PARTE2 3 Manipulação de Arquivo Binário Permite armazenar diferentes tipos de dados em seu formato de máquina (bytes) int, float, double, boolean, char, string É uma sequência (stream) de bytes Características Reduz o tamanho final do arquivo É necessário conhecer os tipos/estruturas de dados utilizados para poder “ler” o arquivo binário ALG2-03-ARQUIVOS-PARTE2 4 Exemplo06 – Escrita de arquivos binários (escrevendo inteiros de 1 até 10) ALG2-03-ARQUIVOS-PARTE2 5 Escrita de outros tipos de dados... DataOutputStream permite gravar diferentes tipos de dados em arquivos binários É possível gravar vários tipos (ex. int, double, float, boolean) em um mesmo arquivo binário? ALG2-03-ARQUIVOS-PARTE2 6 Exemplo07 – Escrita de vários tipos primitivos em arquivos binários (int, float, double, boolean, char) ALG2-03-ARQUIVOS-PARTE2 7 Leitura de um Arquivo Binário Arquivos binários só podem ser lidos (e entendidos) se você conhecer: Os tipos/estrutura de dados que foram escritos A ordem com que foram escritos ALG2-03-ARQUIVOS-PARTE2 8 Leitura de um Arquivo Binário Arquivos binários só podem ser lidos (e entendidos) se você conhecer: Os tipos/estrutura de dados que foram escritos A ordem com que foram escritos Se um determinado programa salvar informações em um arquivo binário... Em geral, apenas o programa irá conseguir recuperar os dados salvos Ou se o “dono” do programa falar os tipos/estruturas de dados que foram utilizados! ALG2-03-ARQUIVOS-PARTE2 9 Leitura de um Arquivo Binário Em Java: FileInputStream DataInputStream Vamos ver dois exemplos.. Leitura do arquivo binário gerado pelo Exemplo06 Leitura do arquivo binário gerado pelo Exemplo07 ALG2-03-ARQUIVOS-PARTE2 10 Exemplo08 – Lendo arquivo binário gerado no programa Exemplo06 ALG2-03-ARQUIVOS-PARTE2 11 Exemplo09 – Lendo arquivo binário gerado no programa Exemplo07 ALG2-03-ARQUIVOS-PARTE2 12 Eficiência de Algoritmos: Arquivos Imagine que precisamos obter o maior valor inteiro de um arquivo com 50 milhões de inteiros armazenados O seu programa pode armazenar apenas 1 milhão de inteiros na memória Possível algoritmo (alto nível): Realizar 50 acessos a disco para leitura do arquivo Cada acesso permite ler um bloco de 1 milhão de inteiros Em cada acesso armazenar o maior inteiro Qual a função de complexidade desse algoritmo? ALG2-03-ARQUIVOS-PARTE2 13 Exercício 1 Faça um programa que leia 10 inteiros do usuário e escreva dois métodos (procedimento) para: Armazenar em um arquivo binário Armazenar em um arquivo texto Em seguida, compare o tamanho dos dois arquivos gerados Qual é maior? Justifique! ALG2-03-ARQUIVOS-PARTE2 14 Exercício 2 Faça um programa que realize a operação “COPIAR ARQUIVO” utilizando leitura e escrita de arquivo binário Compare o desempenho do seu programa com/sem BufferedInputStream BufferedOutputStream Diapositivo 1 Diapositivo 2 Diapositivo 3 Diapositivo 4 Diapositivo 5 Diapositivo 6 Diapositivo 7 Diapositivo 8 Diapositivo 9 Diapositivo 10 Diapositivo 11 Diapositivo 12 Diapositivo 13 Diapositivo 14
Compartilhar