Java - Converter arquivo para byte[]
Este post demostra um exemplo prático de como converter um arquivo em para array de byte em Java
Última atualização em: | 3858 Visualizações
No Java, existem algumas formas de converter um arquivo em um array de bytes, vamos iniciar pela forma mais simples.
Criando nosso arquivo de exemplo
Imagine o seguinte arquivo:
file.json
{"name": "Receitas de Código", "post": "Java - Converter arquivo para byte[]"}
Note: Para este exemplo considere que o arquivo esteja no seu diretório de usuário (
~/file.json
).
Ler arquivo em Java com java.nio.file.Files
Em Java, pode utilizar Files.readAllBytes(<path>)
para converter um arquivo em byte[]
. Veja:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.junit.jupiter.api.Test;
public class FileReadTest {
@Test
void test() throws IOException {
String filePath = "~/file.json";
byte[] pathToBytes = Files.readAllBytes(Paths.get(filePath));
// or
File file = new File(filePath);
byte[] fileToBytes = Files.readAllBytes(file.toPath());
}
}
Note: a classe
nio
está disponível desde o Java 7
Ler arquivo em Java com FileInputStream
Outra forma disponível é utilizar FileInputStream
, principalmente se estiver usando uma versão anterior ao Java 7, esta provavelmente será a forma mais simples de realizar a leitura de um arquivo.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.junit.jupiter.api.Test;
public class FileReadTest {
@Test
void test() throws IOException {
String filePath = "~/file.json";
File file = new File(filePath);
byte[] bytes = new byte[(int) file.length()];
try (FileInputStream fis = new FileInputStream(file)) {
fis.read(bytes);
}
}
}
Note: esta é uma forma mais verbosa, prefira utilizar os recursos mais recentes da linguagem.
Ler arquivo em Java com Apache Commons-IO
Outra opção disponível é utilizar algumas bibliotecas, como no caso o apache commons-io
. Para isso precisa da seguinte dependência:
pom.xml
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
</dependency>
O código será:
import org.apache.commons.io.FileUtils;
File file = new File("/path/file");
byte[] bytes = FileUtils.readFileToByteArray(file);
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.