在 Java 中解码 Base64 数据
我有一个 Base64 编码的图像。在Java中解码它的最佳方法是什么?希望只使用 Sun Java 6 附带的库。
我有一个 Base64 编码的图像。在Java中解码它的最佳方法是什么?希望只使用 Sun Java 6 附带的库。
从Java 8开始,有一个官方支持的用于Base64编码和解码的API。随着时间的推移,这可能会成为默认的选择。
该 API 包括类 java.util.Base64
及其嵌套类。它支持三种不同的风格:基本、URL 安全和 MIME。
使用“基本”编码的示例代码:
import java.util.Base64;
byte[] bytes = "Hello, World!".getBytes("UTF-8");
String encoded = Base64.getEncoder().encodeToString(bytes);
byte[] decoded = Base64.getDecoder().decode(encoded);
String decodedStr = new String(decoded, StandardCharsets.UTF_8);
java.util.Base64
的文档包括几种用于配置编码器和解码器的方法,以及用于使用不同类作为输入和输出(字节数组、字符串、字节缓冲器 java.io 流)的方法。
从 v6 开始,Java SE 随 JAXB 一起提供。javax.xml.bind.DatatypeConverter
具有静态方法,使这变得容易。请参阅 parseBase64Binary()
和 printBase64Binary()。
更新:JAXB不再随Java一起提供(自Java 11起)。如果您的项目需要 JAXB,则需要通过依赖关系管理系统(例如 Maven)配置相关库。如果您需要编译器(),则还需要单独下载。xjc.exe