Bacharelado em Ciência e Tecnologia BC-0505 - Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.br
Conceitos Arquivos permitem armazenar dados de maneira permanente Um arquivo é uma coleção de bytes referenciados por um nome único Existem 4 operações básicas com arquivo 1. Abrir / Criar o Arquivo 2. Ler dados do Arquivo ou Gravar dados no Arquivo 3. Fechar o Arquivo
Gravação Algoritmo para gravação de dados de arquivos abra o destino (através de um stream) enquanto (houver informação a gravar) faça grave a informação fim-enquanto feche o destino
Leitura Algoritmo para leitura de dados de arquivos Abra uma origem de dados (stream) enquanto (houver informação a ser lida) faça leia a informação do arquivo... fim-enquanto feche a origem de dados
Operações com Arquivos Fluxo de Informação - Leitura Para ler informações de um arquivo um programa abre um fluxo de dados (stream) entre o programa e a Origem (Hd, pen-drive, etc)
Operações com Arquivos Fluxo de Informação - gravação Para gravar informações num arquivo um programa abre um fluxo de dados (stream) entre o programa e o destino (Hd, pen-drive, etc)
Arquivos Em Java
Operações com Arquivos O pacote java.io contém uma coleção de classes que permite a gravação e leitura em arquivos Para usar estas classes, um programa precisa importar o pacote java.io
Operações com Arquivos Algumas classes do pacote java.io Tipo de I/O Classe Descrição Arquivo Buffer *FileReader *FileWriter *BufferedReader *BufferedWriter Utilizadas para escrever ou ler em arquivos Encapsula os dados em um buffer, reduzindo o acesso aos dados originais (disco)
Operações com Arquivos Vamos trabalhar com a manipulação de dados em arquivos de forma Bufferizada: BufferedReader: para leitura BufferedWriter: para gravação
Operações com Arquivos Buffer é uma área da memória reservada para armazenar dados Mais especificamente, para dados que serão transmitidos entre dispositivos Os dados são armazenados em buffers de maneira temporária Buffers têm uma estrutura de dados que oferece maior segurança aos dados, encapsulando as informações
Exemplo
import java.io.*; public class GravarEmArquivo { public static void main (String [ ] args) { BufferedWriter conexao; Gravação com Buffer // declara variável para gravar try { // a instrução abaixo ABRE o arquivo teste.txt para gravação usando buffer conexao = new BufferedWriter( new FileWriter ( teste.txt ) ); // as 2 linhas abaixo gravam os textos entre aspas no arquivo teste.txt conexao.write( Isto é um teste de gravação \n" ); conexao.write( no arquivo teste.txt \n" ); } } conexao.close( ); // FECHA o arquivo teste.txt } catch (Exception e) { System.out.println( ERRO durante manipulação arquivo + nomearquivo); }
Criação de Arquivo BufferedWriter conexao; // declara variável para gravar ATENÇÃO: A instrução a seguir sempre RECRIA o arquivo, ou seja, se o arquivo já existe o arquivo é zerado. conexao = new BufferedWriter( new FileWriter ( teste.txt ) ); Para que o arquivo não seja recriado utilize TRUE, no parâmetro da abertura do arquivo, conforme instrução que segue: conexao = new BufferedWriter( new FileWriter ( teste.txt, true) );
import java.io.*; public class LerDoArquivo { public static void main(string[] args) { String nomearquivo = "teste.txt, linha; } } BufferedReader conexao; // declara variável para ler try { // a instrução abaixo ABRE o arquivo teste.txt para Leitura usando buffer conexao = new BufferedReader( new FileReader ( nomearquivo ) ); // as linhas abaixo lêem os dados do arquivo teste.txt e exibem na tela linha = conexao.readline( ); // carrega primeira linha do arquivo while ( linha!= null) { // null indica que chegou no fim do arquivo System.out.println( linha); } Leitura com Buffer linha = conexao.readline(); // carrega a próxima linha do arquivo conexao.close( ); // FECHA o arquivo teste.txt } catch (Exception e) { System.out.println( ERRO durante manipulação arquivo + nomearquivo); }
Tratamento De Exceção
Try - Catch Durante a execução de um programa podem ocorrer erros, tais como : Divisão por zero entrada de dados inválida; erros aritméticos; estouro de limites de arrays; falhas no tratamento de arquivos; etc Quando ocorre um erro o programa termina de maneira anormal, geralmente com uma mensagem incompreensível O Java permite que se houver um erro de execução, este erro seja tratado pelo próprio programa. Por exemplo imprimir uma mensagem mais explicativa, etc. O tratamento de Exceções em Java é feito através da construção try-catch
Try - Catch try { // instruções do programa } catch ( Exception e) { } // Ações ou Mensagem de Erro a exibir
Exemplo
Note o ; como caracter de separação entre os dados
Note o split que separa os dados pelo caracter ;