Java 8 提供了 java.util.Base64,通过静态工厂方法获取符合 RFC 4648 / RFC 2045 的编码器与解码器。该类以静态方法为主,返回不同风格的 Encoder / Decoder 实例。
\r\n)作为分隔符;解码忽略换行符及其他非字母表字符。| 返回类型 | 方法 | 说明 |
|---|---|---|
| Base64.Encoder | getEncoder() |
返回 Basic Base64 编码器。 |
| Base64.Decoder | getDecoder() |
返回 Basic Base64 解码器。 |
| Base64.Encoder | getUrlEncoder() |
返回 URL 与文件名安全的编码器。 |
| Base64.Decoder | getUrlDecoder() |
返回 URL 与文件名安全的解码器。 |
| Base64.Encoder | getMimeEncoder() |
返回 MIME 编码器(76 列换行,CRLF 分隔)。 |
| Base64.Encoder | getMimeEncoder(int lineLength, byte[] lineSeparator) |
返回自定义行宽与分隔符的 MIME 编码器。若 lineSeparator 含有 Base64 字母表字符将抛出 IllegalArgumentException。 |
| Base64.Decoder | getMimeDecoder() |
返回 MIME 解码器。 |
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();
参考:Oracle Java SE 8 — java.util.Base64