English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В 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, декодирование использует MIME тип Base64 кодировщик. |
4 | static Base64.Encoder getMimeEncoder() Возвращает Base64.Encoder, кодирование использует MIME тип Base64 кодировщик. |
5 | static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Возвращает Base64.Encoder, кодирование использует MIME тип Base64 кодировщик, можно указать длину строки и разделитель строк. |
6 | static Base64.Decoder getUrlDecoder() Возвращает Base64.Decoder, декодирование использует безопасный базовый Base64 кодировщик URL и имен файлов. |
7 | static Base64.Encoder getUrlEncoder() Возвращает Base64.Encoder, кодирование использует безопасный базовый Base64 кодировщик URL и имен файлов. |
Внимание:Многие методы класса Base64 заимствованы из java.lang.Object Наследование класса.
Ниже приведен пример использования Base64:
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("w3codebox?java8".getBytes("utf-8")); System.out.println("Base64 кодированная строка (базовая) :" + base64encodedString); // Декодирование byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); System.out.println("Исходная строка: " + new String(base64decodedBytes, "utf-8")); base64encodedString = Base64.getUrlEncoder().encodeToString("w3codebox?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("Error ": + e.getMessage()); } } }
Выполнение вышеуказанного скрипта, результат вывода:
$ javac Java8Tester.java $ java Java8Tester Исходная строка: w3codebox?java8 Строка кодирования Base64 (URL): VHV0b3JpYWxzUG9pbnQ_amF2YTg= Строка кодирования Base64 (MIME): M2Q4YmUxMTEtYWRkZi00NzBlLTgyZDgtN2MwNjgzOGY2NGFlOTQ3NDYyMWEtZDM4ZS00YWVhLTkz OTYtY2ZjMzZiMzFhNmZmOGJmOGI2OTYtMzkxZi00OTJiLWEyMTQtMjgwN2RjOGI0MTBmZWUwMGNk NTktY2ZiZS00MTMxLTgzODctNDRjMjFkYmZmNGM4Njg1NDc3OGItNzNlMC00ZWM4LTgxNzAtNjY3 NTgyMGY3YzVhZWQyMmNiZGItOTIwZi00NGUzLTlkMjAtOTkzZTI1MjUwMDU5ZjdkYjg2M2UtZTJm YS00Y2Y2LWIwNDYtNWQ2MGRiOWQyZjFiMzJhMzYxOWQtNDE0ZS00MmRiLTk3NDgtNmM4NTczYjMx ZDIzNGRhOWU4NDAtNTBiMi00ZmE2LWE0M2ItZjU3MWFiNTI2NmQ2NTlmMTFmZjctYjg1NC00NmE1 LWEzMWItYjk3MmEwZTYyNTdk