Java - Converter arquivo para byte[]

Este post demostra um exemplo prático de como converter um arquivo em para array de byte em Java

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Java - TUTORIAL

Última atualização em: | 2953 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.


Apoiadores

Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!