java.util.Base64 (Java 8)

Java 8 provides java.util.Base64, which exposes static factory methods to obtain Base64 encoders and decoders that comply with RFC 4648 / RFC 2045. The class only contains static methods and returns different styles of Encoder / Decoder instances.

Variants (per spec)

Method overview (selected)

Return type Method Description
Base64.Encoder getEncoder() Returns a Basic Base64 encoder.
Base64.Decoder getDecoder() Returns a Basic Base64 decoder.
Base64.Encoder getUrlEncoder() Returns a URL and filename safe encoder.
Base64.Decoder getUrlDecoder() Returns a URL and filename safe decoder.
Base64.Encoder getMimeEncoder() Returns a MIME encoder (wrap at 76 columns, CRLF as separator).
Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Returns a MIME encoder with custom line length and separator. Throws IllegalArgumentException if lineSeparator contains any Base64 alphabet character.
Base64.Decoder getMimeDecoder() Returns a MIME decoder.

Quick examples

import java.util.Base64;

// Basic
String encoded = Base64.getEncoder().encodeToString("hello".getBytes("UTF-8"));
byte[] bytes = Base64.getDecoder().decode(encoded);

// URL-safe
String url = Base64.getUrlEncoder().encodeToString("a/b?c".getBytes("UTF-8"));

// MIME (wrap at 76 columns)
Base64.Encoder mime = Base64.getMimeEncoder();
		

Reference: Oracle Java SE 8 — java.util.Base64