Класс Base64 в Java предназначен для кодирования и декодирования данных в формате Base64. Base64 - это способ представления бинарных данных в текстовом виде, который использует 64 символа (A-Z, a-z, 0-9 и + /) для представления каждого байта данных.
Класс Base64 в Java имеет два статических метода: encode() и decode().
Метод encode() принимает массив байтов и возвращает строку, содержащую закодированные данные.
Метод decode() принимает строку, содержащую закодированные данные, и возвращает массив байтов.
Пример кодирования данных с использованием класса Base64:
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String originalData = "Hello, world!";
byte[] encodedData = Base64.getEncoder().encode(originalData.getBytes());
String encodedString = new String(encodedData);
System.out.println("Encoded data: " + encodedString);
}
}
В этом примере мы создаем строку "Hello, world!" и кодируем ее с помощью метода encode() класса Base64. Мы используем метод getEncoder() для получения экземпляра класса Encoder, который мы затем используем для кодирования данных. Результат кодирования сохраняется в массиве байтов, который мы преобразуем в строку с помощью конструктора String.
Пример декодирования данных с использованием класса Base64:
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String encodedData = "SGVsbG8sIHdvcmxkIQ==";
byte[] decodedData = Base64.getDecoder().decode(encodedData);
String decodedString = new String(decodedData);
System.out.println("Decoded data: " + decodedString);
}
}
В этом примере мы декодируем строку "SGVsbG8sIHdvcmxkIQ==" с помощью метода decode() класса Base64. Мы используем метод getDecoder() для получения экземпляра класса Decoder, который мы затем используем для декодирования данных. Результат декодирования сохраняется в массиве байтов, который мы преобразуем в строку с помощью конструктора String.
Класс Base64 в Java также поддерживает несколько опций кодирования и декодирования, таких как опция URL_SAFE, которая заменяет символы + и / на - и _ соответственно, чтобы данные могли быть использованы в URL-адресах.
Пример использования опции URL_SAFE:
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String originalData = "Hello, world!";
byte[] encodedData = Base64.getUrlEncoder().encode(originalData.getBytes());
String encodedString = new String(encodedData);
System.out.println("Encoded data: " + encodedString);
byte[] decodedData = Base64.getUrlDecoder().decode(encodedString);
String decodedString = new String(decodedData);
System.out.println("Decoded data: " + decodedString);
}
}
В этом примере мы используем метод getUrlEncoder() для получения экземпляра класса Encoder с опцией URL_SAFE, чтобы закодировать данные. Затем мы используем метод getUrlDecoder() для получения экземпляра класса Decoder с той же опцией, чтобы декодировать данные. Результаты кодирования и декодирования выводятся в консоль.
Класс Base64 в Java очень полезен при работе с данными, которые нужно передавать в текстовом формате, например, при работе с веб-сервисами или при передаче данных по сети.