Arquivos - Tidia UFABC

Propaganda
Bacharelado em Ciência e Tecnologia
BC-0505 - Processamento da Informação
Teoria
Arquivos
Prof. Edson Pinheiro Pimentel
[email protected]
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
Arquivo
Buffer
Classe
Descrição
*FileReader
*FileWriter
Utilizadas para escrever ou
ler em arquivos
*BufferedReader
*BufferedWriter
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
Gravação com Buffer
import java.io.*;
public class GravarEmArquivo {
public static void main (String [ ] args) {
BufferedWriter conexao;
// 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( );
}
catch (Exception e)
// FECHA o arquivo teste.txt
{
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) );
Leitura com Buffer
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);
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 “;”
Download