Gymterview
junior

Как создать Base64 кодировщик и декодировщик?

Кодирование и декодирование выполняется через статические методы класса Base64:

Пример
// Кодирование
String encoded = Base64.getEncoder()
    .encodeToString("input".getBytes("utf-8")); // "aW5wdXQ="

// Декодирование
String decoded = new String(
    Base64.getDecoder().decode("aW5wdXQ="), "utf-8"); // "input"

Для потокового кодирования больших объёмов данных используются обёртки над OutputStream и InputStream:

Пример
// Потоковое кодирование
OutputStream os = Base64.getEncoder().wrap(new FileOutputStream("encoded.txt"));
os.write("large data".getBytes());
os.close();

// Потоковое декодирование
InputStream is = Base64.getDecoder().wrap(new FileInputStream("encoded.txt"));

Потоковый подход эффективен для работы с большими файлами, поскольку не требует загрузки всего содержимого в память.

На собеседовании: помимо базового примера, упомяните потоковое кодирование через wrap() — это показывает знание API за пределами тривиального использования.