Neste post, vou mostrar uma maneira fácil para converter um arquivo para o formato Base64 utilizando Java.

O princípio da codificação Base64 consiste em utilizar caracteres EUA-ASCII (caracteres não acentuados) para codificar qualquer tipo de dado codificado em 8 bits.

Para o exemplo a seguir, foi utilizada a API Java Apache Commons Codec , uma API fantástica, assim como todas as outras API’s da Apache Commons. Esta biblioteca fornece uma grande gama de métodos para trabalharmos com operações em Base64, codificação, decodificação entre outras.

Criei um método que converte um arquivo para um array de bytes para facilitar minha vida no futuro :D. Este método recebe por parâmetro o caminho absoluto do arquivo(que será convertido para Base64) o transforma em um array de bytes então retorna este array.

public byte[] loadFile(String fileName) {
	File file = new File(fileName);

	byte[] bytes = new byte[(int) file.length()];
	try {
		FileInputStream fileInputStream = new FileInputStream(file);
		fileInputStream.read(bytes);
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}

	return bytes;
}

Com o método utilitário que transforma o arquivo em um array de bytes criado, criei um outro método auxiliar, este sim transforma o arquivo já no formato de array de bytes para Base64 usando a API Codec.

public String encodeFileToBase64Binary(String fileName) throws IOException {
    byte[] bytes = loadFile(fileName);
    return Base64.encodeBase64String(bytes);
}

Linha 2, chama o método auxiliar “loadFile” passando o caminho completo do arquivo e recebe um array de bytes como retorno, com este array executa o método “encodeBase64String” linha 3, para então obter o conteúdo em Base64.

Para testar, execute o método “encodeFileToBase64Binary” informado o caminho do arquivo e trabalhe com o resultado em Base64.

String result = encodeFileToBase64Binary("/home/ednei/Desktop/java.pdf");
System.out.println(String.format("Arquivo em Base64: %s", result));

Se quiser saber mais sobre a API Apache Commons Codec, acesse a documentação.

Por enquanto é isso, até o próximo post.

Um comentário para “Converter File Para Base64

  1. Pingback: Converter File Para Base64 sem bibliotecas externas | Parmigiani Júnior, Ednei

Deixe um comentário

Campos obrigatórios são marcados *

Post Navigation