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