Кодирование и декодирование файла Java Base64 (с примерами)

Начиная с Java 8, класс java.util.Base64 предоставляет удобные методы для кодирования и декодирования файлов в формат Base64 и из него. В этом руководстве рассматривается, как выполнять кодирование и декодирование Base64 текстовых и графических файлов.

1. Кодирование и декодирование текстового файла с помощью Base64

Кодирование текстового файла в формат Base64 включает следующие этапы:

  • Считайте содержимое файла в массив байтов с помощью метода Files.readAllBytes().
  • Используйте Base64.Encoder для кодирования массива байтов в другой массив байтов или строку в соответствии с требованиями.
  • При желании обработайте любые исключения, которые могут возникнуть в ходе процесса.

Давайте рассмотрим пример. Этот пример сначала кодирует содержимое файла в base64, а затем декодирует содержимое, закодированное в base64, обратно в строку для проверки. Содержимое файла: «Это сообщение будет записано в файл».

File file = new File("c:/temp/test.txt");//encodingString encoded = Base64.getEncoder().encodeToString(Files.readAllBytes(file.toPath()));System.out.println(encoded);//decodingbyte[] decoded = Base64.getDecoder().decode(encoded);System.out.println(new String(decoded));

Вывод программы:

VGhpcyBtZXNzYWdlIHdpbGwgYmUgd3JpdHRlbiB0byBhIGZpbGUuDQo=This message will be written to a file.

2. Кодирование и декодирование файла изображения с помощью Base64

Кодирование файла изображения в формат Base64 во многом похоже на предыдущий пример текстового файла. Разница в том, что мы имеем дело только с массивами байтов, поскольку печать байтов изображения не имеет смысла.

В следующем примере мы используем Base64.getEncoder().encode() для чтения данных изображения в массив байтов, закодированный в base64. Мы можем преобразовать этот массив байтов в строку для хранения или передачи по сети.

Позже, при необходимости, мы сможем использовать закодированный массив байтов или строку для восстановления обратно в изображение.

File inImage = new File("c:/temp/test.jpg");File outImage = new File("c:/temp/test_restored.jpg");//encodingbyte[] encodedImageBytes = Base64.getEncoder().encode(Files.readAllBytes(inImage.toPath()));String encodedImageDataAsString = new String(encodedImageBytes); //Optionally, if needed//decodingbyte[] decodedImageBytes = Base64.getDecoder().decode(encodedImageBytes);Files.write(outImage.toPath(), decodedImageBytes);

Мы можем убедиться, что образ был успешно создан по указанному пути.

3. Заключение

В этом примере кодирования и декодирования файла Java Base64 обсуждаются методы и процедуры кодирования содержимого текстового файла или байтов двоичного файла и восстановления его в исходный файл. Мы можем использовать и настраивать код, приведенный в этом руководстве, в соответствии с нашими конкретными требованиями.

Исходный код на Github

Прокрутить вверх