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.
\r\n) as the separator; decoding ignores line separators and other non‑alphabet characters.| 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. |
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