Paths e Files
Essas classes contém métodos estáticos que permitem lidar com arquivos de forma mais fácil.
- Paths contém só dois métodos que permitem converter uma String (ou uma URI) com o caminho de um arquivo(ou de um diretório) em um objeto do tipo Path, que representa um caminho no sistema operacional. Notem que Files usa o objeto Path em muitos de seus métodos;
- Files é uma classe cheia de métodos utilitários para trabalharmos com arquivo e com o sistema de arquivos em Java.
Agora vamos mostrar simples exemplos de como abrir arquivos. Se você usa Java 8, vai ver como está mais do que simples lidar com arquivos.
1) Ler os bytes do arquivo
Ler os bytes de um arquivo é essencial se quisermos trabalhar com imagens e outros tipos de arquivos. Mas também é util se queremos passar o conteúdo de um arquivo texto para uma String. Veja:
byte[] bytesArquivo = Files.readAllBytes(p);
String textoArquivo = new String(bytesArquivo);
System.out.println(textoArquivo);
2) Ler as linhas de um arquivo em uma lista
Caso você queria ter linha a linha de um arquivo sem ter que ler ele inteiro para "picar" em linhas, você pode! Simplesmente use o método Files.getAllLines passando o Path do arquivo e salve o retorno em uma lista(java.util.List):
List<String> linhasArquivo = Files.readAllLines(p);
for (String l : linhasArquivo) {
System.out.println("Linha: " + l);
}
3) Ler as linhas de um arquivo em um Stream
Já falamos aqui das facilidades de um Stream e com uma linha de código a gente pode passar todas as linhas de dentro um arquivo de texto para um java.util.Stream, e nele fazer transformações, filtros, etc. Veja como é fácil:
Files.lines(p).forEach(System.out::println);
O que o método acima faz é pegar linha a linha de um arquivo e chamar o método System.out.println. Note que não preciso chamar o método em sí, mas sim passar a referência.
4) Escrever em um arquivo
Escrever em um arquivo é também assunto de chamar um método só! Chamados o método Files.write e passamos os bytes que queremos escrever:
String linhaNova = "Linha criada em " + new java.util.Date().toString();
Files.write(p, linhaNova.getBytes());
Conclusão
Mostramos as facilidades de lidar com arquivo no Java 8. Vejam o código completo baixo. Ele está pronto para ser compilado com javac e executado com java, mas lembre-se de criar um arquivo dados.txt no mesmo diretório onde estará o seu .class
Nenhum comentário:
Postar um comentário