Java Base64 编码方案对比
Base64 是一种将二进制数据编码为 ASCII 字符串的方法,常用于数据传输或存储。Java 中实现 Base64 有多种方式。
- 早期 JDK(不推荐)
java
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
BASE64Encoder encoder = new BASE64Encoder();
BASE64Decoder decoder = new BASE64Decoder();
String encoded = encoder.encode(data);
byte[] decoded = decoder.decodeBuffer(encoded);
缺点:位于 sun.misc 包,非标准 API,性能较差,未来可能被移除。
- Apache Commons Codec
java
import org.apache.commons.codec.binary.Base64;
Base64 base64 = new Base64();
String encoded = base64.encodeToString(data);
byte[] decoded = base64.decode(encoded);
优点:稳定可靠,性能较好。缺点:需引入外部依赖。
- Java 8+ 标准 API(推荐)
java
import java.util.Base64;
Base64.Encoder encoder = Base64.getEncoder();
Base64.Decoder decoder = Base64.getDecoder();
String encoded = encoder.encodeToString(data);
byte[] decoded = decoder.decode(encoded);
优点:JDK 内置,性能最优(比 sun.misc 快 11 倍以上),无需额外依赖。
总结
新项目一律使用 java.util.Base64。
兼容旧系统时可考虑 Commons Codec。
避免使用 sun.misc 相关类。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 只有那年胜过年年!
评论
