21
Linguagem de programação Arquivos e tratamento de erros Professor: Saulo Henrique Cabral Silva Instituto Federal de Minas Gerais Campus Ponte Nova

Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

Embed Size (px)

Citation preview

Page 1: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

Linguagem de programaçãoArquivos e tratamento de erros

Professor: Saulo Henrique Cabral Silva

Instituto Federal de Minas GeraisCampus Ponte Nova

Page 2: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

ARQUIVOS

2

Page 3: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

Arquivos

• Dados armazenados em variáveis e arrays sãotemporários...– Escopo ?

– Memória RAM

• Para retenção de longo prazo dos dados é preciso utilizar amemória secundária.– Onde os dados podem ser persistidos.

– Estamos interessados em armazenar os dados

além da execução do software.

3

Page 4: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

Arquivos - File

• File é útil para recuperar informações sobrearquivos 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

Page 5: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

File

• Para construção de um File é necessário um nome deum arquivo ou diretório.

• O nome pode referenciar tanto uma URI, umdiretório ou um arquivo.

File f = new File("C:\\algumArquivo.txt");

5

Page 6: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

File - propriedades

• canRead () Verifica se o arquivo/diretório em questão é Elegível paraleitura do programa.

• canWrite () Verifica se o arquivo/diretório em questão é Elegível paragravaçã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

Page 7: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

Exercício

• Crie um programa que mostre quais as propriedadesde 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

Page 8: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

FileReader (leitura)

• Efetua a entrada de dados baseada em caracteres deum arquivo.

• Marcação do arquivo para realizar a leitura doarquivo especificado.

• A partir deste momento o arquivo esta marcado no modo leitura, e o mesmo

estará sendo utilizado.

FileReader canalLeitura = new FileReader( file );8

Page 9: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

FileWriter (escrita)

• Efetua a saída de dados baseada em caracteres deum 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

Page 10: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

10

TRATAMENTO DE ERROS!!!

Page 11: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

Tratamento de erros

• Em Java cada método, e cada código define umcontrato 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çãode erro.

– Se o mesmo não for passível de ser processado e o erro não puder sercontornado, ele deve “avisar” aquele quem o chamou.

11

Método A Método B

Page 12: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

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

Page 13: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

Finally

• A clausula Finally, é executada independente de qual blocofor 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

Page 14: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

14

BUFFER’S

Page 15: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

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

Page 16: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

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

Page 17: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

PRATICANDO...

17

Page 18: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

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

Page 19: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

Estrutura básica para a escrita de um arquivo (extensões livres!!!) ...

1 - Referenciar um diretório, atribuindo nome para o arquivo eextensã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

Page 20: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para

TP 3

20

Page 21: Linguagem de programação Arquivos e tratamento de errossauloifmg.com.br/Disciplinas/L1/aula8.pdf · Linguagem de programação ... 1 FileWriter ... 2 –Criar um FileWriter para