在 Java 中解码 Base64 数据

2022-08-31 04:22:42

我有一个 Base64 编码的图像。在Java中解码它的最佳方法是什么?希望只使用 Sun Java 6 附带的库。


答案 1

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 流)的方法。


答案 2

从 v6 开始,Java SE 随 JAXB 一起提供。javax.xml.bind.DatatypeConverter具有静态方法,使这变得容易。请参阅 parseBase64Binary()printBase64Binary()。

更新:JAXB不再随Java一起提供(自Java 11起)。如果您的项目需要 JAXB,则需要通过依赖关系管理系统(例如 Maven)配置相关库。如果您需要编译器(),则还需要单独下载。xjc.exe


推荐