Algoritmos e Programação - 2013.1 - Aula 17

  • 362 views
Uploaded on

Algoritmos e Programação - 2013.1 - Aula 17

Algoritmos e Programação - 2013.1 - Aula 17

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
362
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
17
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Algoritmos e ProgramaçãoProf.º Thyago MaiaProf.  Thyago Maia2013.1
  • 2. Aula 17Objetivos• Apresentar as classes e métodos necessários para a leitura e escrita pde arquivos em Java;2
  • 3. ArquivosArquivos
  • 4. Arquivosq• Existem diversas classes em Java para o controle da entrada e saída de arquivos;q– Todas pertencentes ao pacote de classes java.io;• Como o referido curso é introdutório, serão apresentadas as classes mais simples;
  • 5. Declaração de ArquivosDeclaração de Arquivos
  • 6. Declaração de Arquivosç q• Em Java, para trabalharmos com arquivos, precisamos instanciar um objeto que represente um caminho abstrato entre a classe e o arquivo;• Para isso, utilizamos a classe File: File arquivo = new File("C:/arquivo.txt");• Deve‐se importar a classe File para que a mesma possa ser instanciadapossa ser instanciada:import java io File;import java.io.File;
  • 7. // Exemploimport java.io.File;public class principal {public static void main(String[] args) {public static void main(String[] args) {File arquivo = new File("C:/arquivo.txt");// Checa se o arquivo existeif(arquivo.exists())S t t i tl ("A i i t t ")System.out.println("Arquivo existente");elseSystem.out.println("Arquivo não existe");}}
  • 8. Escrita em ArquivosEscrita em Arquivos
  • 9. Escrita em Arquivosq• Em Java, para gravar uma cadeia de caracteres em arquivos, precisamos instanciar um objeto q p jque funcione como um “escritor” de arquivos;• Tal objeto fará acesso ao objeto da classe File• Tal objeto fará acesso ao objeto da classe File (que representa o arquivo em si)• Para a criação do escritor, utilizamos a classe FileWriter:FileWriter: FileWriter escritor = new FileWriter(arquivo, true);FileWriter escritor new FileWriter(arquivo, true);
  • 10. Escrita em Arquivosq• O segundo parâmetro da função indica se o conteúdo textual a ser inserido será adicionado ao conteúdo já existente no arquivo (true) ou se irá sobrescrevê‐lo (false);• Deve‐se importar as classes FileWriter para que a mesma possa ser instanciada;• A classe IOException também deverá ser importada, para que seja possível o lançamento de exceções;p q j p ç ç ;import java.io.FileWriter;Import java.io.IOException;
  • 11. // Exemploimport java io File;import java.io.File;import java.io.FileWriter;import java.io.IOException;public class principal{public static void main(String[] args) throwsIOException {File arq = new File("C:/arquivo.txt");FileWriter escritor = new FileWriter(arq, true);( q, );// Método para a escrita em arquivosescritor write(“Texto a ser gravadon”);escritor.write( Texto a ser gravadon );// Após a gravação, o escritor deve ser fechadoescritor.close();}}}
  • 12. Leitura de ArquivosLeitura de Arquivos
  • 13. Leitura de Arquivosq• Em Java, para ler uma cadeia de caracteres em arquivos, precisamos instanciar um objeto que q p j qfuncione como um “leitor” de arquivos;• Tal objeto fará acesso ao objeto da classe File• Tal objeto fará acesso ao objeto da classe File (que representa o arquivo em si)• Para a criação do leitor, utilizamos a classe FileReader:FileReader: FileReader leitor = new FileReader(arquivo);FileReader leitor new FileReader(arquivo);
  • 14. Leitura de Arquivosq• Deve‐se importar a classe FileReader para que a mesma possa ser instanciada, além da classe pIOException para o tratamento de exceções:i j i il dimport java.io.FileReader;Import java.io.IOException;• Os dados lidos deverão ser armazenados em um vetor de caracteres Exemplo:um vetor de caracteres. Exemplo:char dados[] = new char[100];char dados[] new char[100];
  • 15. // Exemploimport java.io.File;import java io FileReader;import java.io.FileReader;import java.io.IOException;public class principal {public static void main(String[] args) throwsIOException {File arq = new File("C:/arquivo.txt");FileReader leitor = new FileReader(arq);char dados[] = new char[100];// Método para a leitura de arquivosleitor.read(dados);System out println(dados);System.out.println(dados);// Após a leitura, o leitor deve ser fechadoleitor close();leitor.close();}}
  • 16. ExercícioExercício
  • 17. Exercício• Faça um programa em Java que leia o nome de 5 pessoas, armazenando‐os em um parquivo. Em seguida, o programa deverá exibir todos os nomes cadastrados no arquivo;todos os nomes cadastrados no arquivo;
  • 18. Acesso Aleatório em ArquivosAcesso Aleatório em Arquivos
  • 19. Acesso Aleatório em Arquivos• Em arquivos, quando necessitamos tratar vários tipos de dados ou acessar linhas específicas, precisamos trabalhar com acesso aleatório;• Para isso, utilizamos a classe RandomAccessFile: RandomAccessFile acesso = new RandomAccessFile(arq, “rw”);• Deve‐se importar a classe RandomAccessFile para que a mesma possa ser instanciada além da classeque a mesma possa ser instanciada , além da classe IOException para o tratamento de exceções: import java.io.RandomAccessFile;Import java.io.IOException;
  • 20. Acesso Aleatório em Arquivos• O segundo parâmetro da instância indica se o arquivo será acessado com permissões de q pleitura e escrita (rw), apenas leitura (r) ou apenas escrita (w);apenas escrita (w);
  • 21. // Exemplo – Gravar dados inteiros em arquivosimport java io File;import java.io.File;import java.io.RandomAccessFile;import java.io.IOException;public class principal {public static void main(String[] args) throws IOException {p g g pFile arq = new File("C:/arquivo.txt");RandomAccessFile acesso = new RandomAccessFile(arq, “rw”);int num1 = 14, num2 = 15;// Método para a escritaacesso.writeInt(num1);it I t( 2)acesso.writeInt(num2);// Após a gravação, o acesso deve ser fechadoacesso.close();}}}
  • 22. // Exemplo – Ler dados inteiros em arquivosimport java.io.File;import java.io.RandomAccessFile;import java.io.IOException;public class principal {public static void main(String[] args) throws IOException {public static void main(String[] args) throws IOException {File arq = new File("C:/arquivo.txt");RandomAccessFile acesso = new RandomAccessFile(arq, “rw”);// Método para a leitura// Método para a leituraint num1 = acesso.readInt();int num2 = acesso.readInt();System.out.println(num1);// Após a leitura, o acesso deve ser fechadoacesso.close();}}
  • 23. // Exemplo – Gravar um String em arquivosimport java.io.File;import java.io.RandomAccessFile;import java.io.IOException;p j p ;public class principal {public static void main(String[] args) throws IOException {File arq = new File("C:/arquivo.txt");RandomAccessFile acesso = new RandomAccessFile(arq, “rw”);String nome = “Thyago”;// Método para a escritait Ch ( )acesso.writeChars(nome);// Após a gravação, o acesso deve ser fechadoacesso.close();}}}
  • 24. // Exemplo – Ler String em arquivosimport java.io.File;import java.io.RandomAccessFile;i t j i IOE tiimport java.io.IOException;public class principal {public static void main(String[] args) throws IOException {File arq = new File("C:/arquivo txt");File arq = new File( C:/arquivo.txt );RandomAccessFile acesso = new RandomAccessFile(arq, “rw”);// Método para a leituraString nome = acesso.readLine();System.out.println(nome);y p ( );// Após a leitura, o acesso deve ser fechadoacesso.close();}}
  • 25. // Exemplo – Descobrir a posição do cursor no arquivo// Exemplo Descobrir a posição do cursor no arquivoimport java.io.File;import java.io.RandomAccessFile;p j ;import java.io.IOException;public class principal {public static void main(String[] args) throws IOException {File arq = new File("C:/arquivo.txt");RandomAccessFile acesso = new RandomAccessFile(arq, “rw”);System.out.println(“Posição: ” + acesso.getFilePointer());}}}
  • 26. // Exemplo – Posicionar o cursor no arquivoimport java.io.File;i t j i R d A Filimport java.io.RandomAccessFile;import java.io.IOException;public class principal {public static void main(String[] args) throws IOException {public static void main(String[] args) throws IOException {File arq = new File("C:/arquivo.txt");RandomAccessFile acesso = new RandomAccessFile(arq, “rw”);acesso.seek(5);( );}}
  • 27. ExercícioExercício
  • 28. Exercício• Faça uma classe Java que receba a idade de 5 pessoas, armazenando‐as em um arquivo. p qE id f l lê d• Em seguida, faça outra classe que lê todas as idades cadastradas no arquivo e calcula a média das mesmas;