linguagem de programação arquivos e tratamento de...
TRANSCRIPT
Linguagem de programação Arquivos e tratamento de erros
Professor: Saulo Henrique Cabral Silva
Instituto Federal de Minas Gerais Campus Ponte Nova
Arquivos
• Dados armazenados em variáveis e arrays são temporários... – Escopo ?
– Memória RAM
• Para retenção de longo prazo dos dados é preciso utilizar a memória secundária. – Onde os dados podem ser persistidos.
– Estamos interessados em armazenar os dados
além da execução do software.
3
Arquivos - File
• File é útil para recuperar informações sobre arquivos ou diretórios em disco.
• Um File não processa
diretamente um arquivo mas
fornece um “caminho”, uma
ligação entre o programa sendo
executado e o arquivo/diretório
ao qual se deseja manipular.
4
File
• Para construção de um File é necessário um nome de um arquivo ou diretório.
• O nome pode referenciar tanto uma URI, um diretório ou um arquivo.
File f = new File("C:\\algumArquivo.txt");
5
File - propriedades
• canRead () Verifica se o arquivo/diretório em questão é Elegível para leitura do programa.
• canWrite () Verifica se o arquivo/diretório em questão é Elegível para gravação do programa.
• exists () Verifica se o diretório ou arquivo de fato existem.e
• isFile () Verifica se o caminho especificado representa um arquivo.
• getAbsolutePath () Retorna o caminho absoluto
do arquivo ou diretório.
6
Exercício
• Crie um programa que mostre quais as propriedades de um arquivo ou diretório da sua máquina...
• Cuidado!!! Para separar arquivos e diretórios em um
ambiente Windows use: \ Para separar arquivos e diretórios em um ambiente
Unix use: /
7
FileReader (leitura)
• Efetua a entrada de dados baseada em caracteres de um arquivo.
• Marcação do arquivo para realizar a leitura do arquivo especificado.
• A partir deste momento o arquivo esta marcado no modo leitura, e o mesmo
estará sendo utilizado.
FileReader canalLeitura = new FileReader( file ); 8
FileWriter (escrita)
• Efetua a saída de dados baseada em caracteres de um arquivo.
1 FileWriter canalEscrita = new FileWriter(file);
2 FileWriter canalEscrita = new FileWriter(file,true);
• Arquivo é marcado para escrita...
• Não esqueça de fechar o arquivo!!! 9
Tratamento de erros
• Em Java cada método, e cada código define um contrato que deve seguir. – Se o mesmo ocasionar algum erro (exceção) durante o seu
processamento, ele deve ser passível de tentar contornar a situação de erro.
– Se o mesmo não for passível de ser processado e o erro não puder ser contornado, ele deve “avisar” aquele quem o chamou.
11
Método A Método B
Tratamento de erros
• Para a criação de um bloco de tratamento
de erros em Java, utilizamos o bloco: try-catch
try {
//faça algum processamento...
} catch(Exception ex){
/*caso algum erro ocorra dentro do bloco try, o bloco catch
será executado automaticamente*/
}
12
Finally
• A clausula Finally, é executada independente de qual bloco for processado.
• Ela é executada tanto no try e no catch. Isso é uma garantia!
try {
// execute alguma coisa
} catch (Exception ex) {
// contorne o problema
} finally {
// é executado de qualquer forma, tanto no try - catch
} 13
BufferedReader / BufferedWriter
• Buffer’s otimizados de leitura/escrita.
• Trabalham com as classes I / O do Java.
• Trabalham com um InputStream ou um OutputStream.
• Podem ser utilizados para troca
de informações entre duas máquinas.
(veremos adiante essa aplicação)
• Métodos constantemente utilizados:
– readLine( )
– write( )
15
Estrutura dos Arquivos
• Linhas terminam o caractere especial “\n”.
• A última linha de um arquivo tem
sempre o valor null.
• Métodos como flush() e close(),
são uma boa prática...
16
Estrutura básica para a leitura de um arquivo (extensões livres) ...
1 – Referenciar o arquivo dentro do diretório...
2 – Criar um FileReader, utilizando a referência criada.
3 – Criar um Buffer de leitura para o arquivo em questão (BufferedReader)
4 – estrutura para efetuar a leitura de
todas as linhas do arquivo... (sugestões?)
18
Estrutura básica para a escrita de um arquivo (extensões livres!!!) ...
1 - Referenciar um diretório, atribuindo nome para o arquivo e extensão.
2 – Criar um FileWriter para marcação do arquivo como ESCRITA.
3 – Criar um BuferedWriter para a escrita otimizada do arquivo.
4 – Efetuar a escrita dos dados necessários para a aplicação
5 – Encerrar o fluxo de escrita do arquivo.
19