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


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

Поділитись