Учебники

Java 8 — Base64

С Java 8, Base64 наконец-то получил свое. Java 8 теперь имеет встроенный кодер и декодер для кодирования Base64. В Java 8 мы можем использовать три типа кодировки Base64.

  • Простой — вывод сопоставляется с набором символов, лежащих в A-Za-z0-9 + /. Кодер не добавляет какой-либо перевод строки в вывод, а декодер отклоняет любой символ, кроме A-Za-z0-9 + /.

  • URL — вывод сопоставляется с набором символов, лежащих в A-Za-z0-9 + _. Вывод URL и имя файла безопасны.

  • MIME — Выходные данные отображаются в формате MIME. Вывод представлен в строках длиной не более 76 символов и использует возврат каретки ‘\ r’, за которым следует перевод строки \ n в качестве разделителя строк. В конце закодированного вывода отсутствует разделитель строк.

Простой — вывод сопоставляется с набором символов, лежащих в A-Za-z0-9 + /. Кодер не добавляет какой-либо перевод строки в вывод, а декодер отклоняет любой символ, кроме A-Za-z0-9 + /.

URL — вывод сопоставляется с набором символов, лежащих в A-Za-z0-9 + _. Вывод URL и имя файла безопасны.

MIME — Выходные данные отображаются в формате MIME. Вывод представлен в строках длиной не более 76 символов и использует возврат каретки ‘\ r’, за которым следует перевод строки \ n в качестве разделителя строк. В конце закодированного вывода отсутствует разделитель строк.

Вложенные классы

Sr.No. Вложенный класс и описание
1

статический класс Base64. Декодер

Этот класс реализует декодер для декодирования байтовых данных с использованием схемы кодирования Base64, как указано в RFC 4648 и RFC 2045.

2

статический класс Base64.Encoder

Этот класс реализует кодер для кодирования байтовых данных с использованием схемы кодирования Base64, как указано в RFC 4648 и RFC 2045.

статический класс Base64. Декодер

Этот класс реализует декодер для декодирования байтовых данных с использованием схемы кодирования Base64, как указано в RFC 4648 и RFC 2045.

статический класс Base64.Encoder

Этот класс реализует кодер для кодирования байтовых данных с использованием схемы кодирования Base64, как указано в RFC 4648 и RFC 2045.

методы

Sr.No. Название и описание метода
1

статический Base64.Decoder getDecoder ()

Возвращает Base64.Decoder, который декодирует, используя схему кодирования base64 типа Basic.

2

статический Base64.Encoder getEncoder ()

Возвращает Base64.Encoder, который кодирует, используя схему кодирования base64 типа Basic.

3

статический Base64.Decoder getMimeDecoder ()

Возвращает Base64.Decoder, который декодирует, используя схему декодирования base64 MIME-типа.

4

статический Base64.Encoder getMimeEncoder ()

Возвращает Base64.Encoder, который кодирует, используя схему кодирования base64 MIME-типа.

5

статический Base64.Encoder getMimeEncoder (int lineLength, byte [] lineSeparator)

Возвращает Base64.Encoder, который кодирует с использованием схемы кодирования base64 MIME-типа с заданной длиной строки и разделителями строк.

6

статический Base64.Decoder getUrlDecoder ()

Возвращает Base64.Decoder, который декодирует с использованием схемы кодировки base64 URL и безопасного имени файла.

7

статический Base64.Encoder getUrlEncoder ()

Возвращает Base64.Encoder, который кодирует с использованием схемы кодирования base64 безопасного URL-адреса и имени файла.

статический Base64.Decoder getDecoder ()

Возвращает Base64.Decoder, который декодирует, используя схему кодирования base64 типа Basic.

статический Base64.Encoder getEncoder ()

Возвращает Base64.Encoder, который кодирует, используя схему кодирования base64 типа Basic.

статический Base64.Decoder getMimeDecoder ()

Возвращает Base64.Decoder, который декодирует, используя схему декодирования base64 MIME-типа.

статический Base64.Encoder getMimeEncoder ()

Возвращает Base64.Encoder, который кодирует, используя схему кодирования base64 MIME-типа.

статический Base64.Encoder getMimeEncoder (int lineLength, byte [] lineSeparator)

Возвращает Base64.Encoder, который кодирует с использованием схемы кодирования base64 MIME-типа с заданной длиной строки и разделителями строк.

статический Base64.Decoder getUrlDecoder ()

Возвращает Base64.Decoder, который декодирует с использованием схемы кодировки base64 URL и безопасного имени файла.

статический Base64.Encoder getUrlEncoder ()

Возвращает Base64.Encoder, который кодирует с использованием схемы кодирования base64 безопасного URL-адреса и имени файла.

Унаследованные методы

Этот класс наследует методы из следующего класса —

  • java.lang.Object

Пример Base64

Создайте следующую Java-программу, используя любой редактор по вашему выбору, например, C: /> JAVA.

Java8Tester.java

Live Demo

import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;

public class HelloWorld {

   public static void main(String args[]) {

      try {
		
         // Encode using basic encoder
         String base64encodedString = Base64.getEncoder().encodeToString(
            "TutorialsPoint?java8".getBytes("utf-8"));
         System.out.println("Base64 Encoded String (Basic) :" + base64encodedString);
		
         // Decode
         byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
		
         System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
         base64encodedString = Base64.getUrlEncoder().encodeToString(
            "TutorialsPoint?java8".getBytes("utf-8"));
         System.out.println("Base64 Encoded String (URL) :" + base64encodedString);
		
         StringBuilder stringBuilder = new StringBuilder();
		
         for (int i = 0; i < 10; ++i) {
            stringBuilder.append(UUID.randomUUID().toString());
         }
		
         byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
         String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
         System.out.println("Base64 Encoded String (MIME) :" + mimeEncodedString);

      } catch(UnsupportedEncodingException e) {
         System.out.println("Error :" + e.getMessage());
      }
   }
}

Проверьте результат

Скомпилируйте класс с помощью компилятора javac следующим образом:

C:\JAVA>javac Java8Tester.java

Теперь запустите Java8Tester следующим образом —

C:\JAVA>java Java8Tester

Он должен произвести следующий вывод —