Java8 Base64

Java 8 新特性Новые возможности Java 8


В Java 8 кодирование Base64 стало стандартом в библиотеке классов Java.

В Java 8 есть встроенные кодировщики и декодировщики Base64.

Служебный класс Base64 предоставляет набор статических методов для получения следующих трёх типов кодировщиков/декодировщиков BASE64:

  • Базовый:Выходные данные отображаются на набор символов A-Za-z0-9+/, кодирование не добавляет разрывов строк, а декодирование выходных данных поддерживает только A-Za-z0-9+/,
  • URL:Выходные данные отображаются на набор символов A-Za-z0-9+_, и результат безопасен для URL и имён файлов.
  • MIME:Выходные данные отображаются в формат, совместимый с MIME. Каждая строка вывода содержит не более 76 символов и использует '\r', за которым следует '\n', в качестве разделителя. Закодированные выходные данные не имеют разделителя строк в конце.

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

Нет. Вложенный класс & описание
1 static class Base64.Decoder

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

2 static class Base64.Encoder

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

Методы

Нет. Имя метода & описание
1 static Base64.Decoder getDecoder()

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

2 static Base64.Encoder getEncoder()

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

3 static Base64.Decoder getMimeDecoder()

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

4

static Base64.Encoder getMimeEncoder()

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

5 static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)

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

6 static Base64.Decoder getUrlDecoder()

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

7 static Base64.Encoder getUrlEncoder()

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

Примечание:Многие методы класса Base64 наследуются изjava.lang.Objectкласса.


Пример Base64

В следующем примере демонстрируется использование Base64:

Файл Java8Tester.java

import java.util.Base64; import java.util.UUID; import java.io.UnsupportedEncodingException; public class Java8Tester { public static void main(String args[]){ try { //Использование базового кодирования String base64encodedString = Base64.getEncoder().encodeToString("example?java8".getBytes("utf-8")); System.out.println("Строка, закодированная в Base64 (Basic):" + base64encodedString); //Декодировать byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); System.out.println("Исходная строка:" + new String(base64decodedBytes, "utf-8")); base64encodedString = Base64.getUrlEncoder().encodeToString("example?java8".getBytes("utf-8")); System.out.println("Строка, закодированная в Base64 (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 (MIME):" + mimeEncodedString); }catch(UnsupportedEncodingException e){ System.out.println("Ошибка :" + e.getMessage()); } } }

При выполнении приведённого выше скрипта вывод будет:

$ javac Java8Tester.java 
$ java Java8Tester
原始字符串: example?java8
Base64 编码字符串 (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 编码字符串 (MIME) :M2Q4YmUxMTEtYWRkZi00NzBlLTgyZDgtN2MwNjgzOGY2NGFlOTQ3NDYyMWEtZDM4ZS00YWVhLTkz
OTYtY2ZjMzZiMzFhNmZmOGJmOGI2OTYtMzkxZi00OTJiLWEyMTQtMjgwN2RjOGI0MTBmZWUwMGNk
NTktY2ZiZS00MTMxLTgzODctNDRjMjFkYmZmNGM4Njg1NDc3OGItNzNlMC00ZWM4LTgxNzAtNjY3
NTgyMGY3YzVhZWQyMmNiZGItOTIwZi00NGUzLTlkMjAtOTkzZTI1MjUwMDU5ZjdkYjg2M2UtZTJm
YS00Y2Y2LWIwNDYtNWQ2MGRiOWQyZjFiMzJhMzYxOWQtNDE0ZS00MmRiLTk3NDgtNmM4NTczYjMx
ZDIzNGRhOWU4NDAtNTBiMi00ZmE2LWE0M2ItZjU3MWFiNTI2NmQ2NTlmMTFmZjctYjg1NC00NmE1
LWEzMWItYjk3MmEwZTYyNTdk

Java 8 新特性Новые возможности Java 8

Другие расширения