Como trabalhar com Files e Path do java.nio.file do Java
Quem trabalha com desenvolvimento sabe que é bastante comum precisar fazer a leitura de arquivos usando Java, neste post vou mostrar como ficou fácil usando Java 8
Última atualização em: | 18797 Visualizações
Para carregar os bytes de um arquivo usando Java 8 é muito simples, primeiro precisamos de uma arquivo de exemplo, neste caso utilizaremos uma imagem que está em: /home/wolmir/ubuntu.png
e utilizaremos os pacotes java.nio.file.*
.
Carregando os bytes de uma imagem
Agora que temos o arquivo em um determinado diretório vamos fazer a leitura dos bytes:
import java.nio.file.*;
// Primeiro utilize o Path para localizar o arquivo
Path path = Paths.get("/home/wolmir/ubuntu.png");
// Tendo o path pode carregar o arquivo
byte[] bytesArquivo = Files.readAllBytes(path);
Bastante simples. Agora vamos ver como escrever os bytes.
Gravando os bytes para um arquivo
Para fazer o processo inverso, utilizaremos os bytes carregados da imagem acima, considere o código:
import java.nio.file.*;
// Primeiro utilize o Path para localizar o arquivo
Path path = Paths.get("/home/wolmir/ubuntu.png");
// Tendo o path pode carregar o arquivo
byte[] bytesArquivo = Files.readAllBytes(path);
// gravamos os bytes em outro arquivo
Path pathTo = Paths.get("/home/wolmir/ubuntu-2.png");
Files.write(pathTo, bytesArquivo);
Outros métodos também podem ser úteis para você, veja:
Carregar as linhas de um arquivo texto
Ainda você pode fazer a leitura do arquivo utilizando o Files
, para este exemplo utilizaremos um arquivo texto gravado em /home/wolmir/meu-arquivo.txt
veja:
import java.nio.file.*;
// Primeiro utilize o Path para localizar o arquivo
Path path = Paths.get("/home/wolmir/meu-arquivo.txt");
List<String> linhasArquivo = Files.readAllLines(p);
for (String linha : linhasArquivo) {
System.out.println( linha );
}
Ainda se quiser fazer a leitura do arquivo utilizando um Stream
, pode fazer da seguinte forma:
Files.lines(path).forEach(System.out::println);
Obterá o mesmo resultado.
Qualquer dúvida deixe nos comentários!
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.