DatatypeConverter与Base64的区别

15

我目前正在一个项目上工作,需要进行64位解码。经过一些研究,我在Java本身中找到了以下两种方法:

来自JAVA 8

import java.util.Base64;

byte[] decodedBytes = Base64.getDecoder().decode("encodedUserPassword");

来自JAVA 6

import javax.xml.bind.DatatypeConverter;

byte[] decodedBytes = DatatypeConverter.parseBase64Binary("encodedUserPassword");
我想知道的是,既然已经有DatatypeConverter了,为什么还需要Base64?这两者在性能方面是否有区别?
1个回答

17

javax.xml.bind 模块在 Java9 中已经被废弃(甚至被删除)https://docs.oracle.com/javase/9/docs/api/java.xml.bind-summary.html

如果你的项目使用的是 Java8 及其以上版本,则应该停止使用该包,并改用 Java8 的 Base64 类,这样未来的 Java 升级就不会影响它们。

另一方面,如果你必须与 Java7 或更早版本兼容,就不能使用Base64(因为它只在Java8中引入)。为此,你应该继续使用 DatatypeConverter或者更好的是,另一个独立的库来编码/解码base 64(比如Apache Commons 64)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接