java: manipulação de arquivos

22
Manipulação de Arquivos Arthur Emanuel de Oliveira Carosia

Upload: arthur-emanuel

Post on 09-Jan-2017

30 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Java:  Manipulação  de Arquivos

Manipulação de Arquivos

Arthur Emanuel de Oliveira Carosia

Page 2: Java:  Manipulação  de Arquivos

Introdução• Assim como todo o resto das bibliotecas em Java, a parte

de controle de entrada e saída de dados (conhecido como io) é orientada a objetos e usa os principais conceitos mostrados até agora: interfaces, classes abstratas e polimorfismo.

• A ideia atrás do polimorfismo no pacote java.io é de utilizar fluxos de entrada (InputStream) e de saída (OutputStream) para toda e qualquer operação, seja ela relativa a um arquivo, a um campo blob do banco de dados, a uma conexão remota via sockets, ou até mesmo às entrada e saída padrão de um programa

Page 3: Java:  Manipulação  de Arquivos

Introdução

• Pacote – java.io

• As classes abstratas – InputStream e OutputStream

• Definem: – o comportamento padrão dos fluxos em Java:

• Em um fluxo de entrada, é possível ler bytes e, no fluxo de saída, escrever bytes.

Page 4: Java:  Manipulação  de Arquivos

Lendo um Byte de um Arquivo

• Para ler um byte de um arquivo, vamos usar o leitor de arquivo, o FileInputStream.

Page 5: Java:  Manipulação  de Arquivos

Lendo um Caractere

• InputStreamReader é filha da classe abstrata Reader, que possui diversas outras filhas - são classes que manipulam chars.

Page 6: Java:  Manipulação  de Arquivos

Lendo uma String• Apesar da classe abstrata Reader já ajudar no trabalho de

manipulação de caracteres, ainda seria difícil pegar uma String.

• A classe BufferedReader é um Reader que recebe outro Reader pelo construtor e concatena os diversos chars para formar uma String através do método readLine:

Page 7: Java:  Manipulação  de Arquivos

Composição de Classes

Page 8: Java:  Manipulação  de Arquivos

Lendo um arquivo texto inteiro

Page 9: Java:  Manipulação  de Arquivos

Escrevendo em arquivo

• Processo

Page 10: Java:  Manipulação  de Arquivos

Escrevendo em arquivo

Page 11: Java:  Manipulação  de Arquivos

Escrevendo em Arquivo

• O FileOutputStream pode receber um booleano como segundo parâmetro, para indicar se você quer reescrever o arquivo ou manter o que já estava escrito (append).

• O método write do BufferedWriter não insere o(s) caractere(s) de quebra de linha. Para isso, você pode chamar o método newLine.

Page 12: Java:  Manipulação  de Arquivos

Tratamento de Exceções

• Quando trabalhamos com java.io, diversos métodos lançam IOException, que é uma exception do tipo checked - o que nos obriga a tratá-la ou declará-la.

• É importante sempre fechar o arquivo.– É comum e fundamental que o close esteja dentro

de um bloco finally.

Page 13: Java:  Manipulação  de Arquivos

Simplificando

• Classe File

Page 14: Java:  Manipulação  de Arquivos

FileWriter e PrinterWriter

Page 15: Java:  Manipulação  de Arquivos

FileReader e BufferedReader

Page 16: Java:  Manipulação  de Arquivos

Simplificando...

• FileReader

• FileWriter

Page 17: Java:  Manipulação  de Arquivos

Simplificando...

Page 18: Java:  Manipulação  de Arquivos

Simplificando...

Page 19: Java:  Manipulação  de Arquivos

Simplificando...

Page 20: Java:  Manipulação  de Arquivos

Exercício• Construa uma classe GerenciaArquivo com um método que

leia de um arquivo os dados dos livros de uma biblioteca e retorne um novo Array de livros. Os dados do arquivo estão disponibilizados da seguinte forma:– titulo, autor, editora

• Nesta mesma classe, crie um método que escreve no arquivo as informações sobre o livro conforme a forma descrita anteriormente.

• Integre estas classes ao sistema de Biblioteca Desenvolvido anteriormente na disciplina. E faça o sistema carregar de um arquivo texto todo o conteúdo da biblioteca ao iniciar o programa e salvar o conteúdo no arquivo a cada livro inserido.

Page 21: Java:  Manipulação  de Arquivos

Exercício

• Crie um programa que contabilize os votos de uma eleição.

• A cada voto, é inserida uma String em um arquivo com o nome do candidato votado

• Para contabilizar os votos, o arquivo é lido, transferido para um vetor de candidatos e então o vencedor da eleição deve ser exibido.

• Para facilitar a entrada e saída na tela, utilize JOptionPane.

Page 22: Java:  Manipulação  de Arquivos

Manipulação de Arquivos

Arthur Emanuel de Oliveira Carosia