数据类型转换器与 Base64
DatatypeConverter vs Base64
我目前正在做一个需要 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
?
是否有不同的表现方式?
整个 javax.xml.bind 模块已在 Java9 弃用(甚至删除) https://docs.oracle.com/javase/9/docs/api/java.xml.bind-summary.html
如果您的项目正在使用 Java8 之后的版本,请停止使用该包并改用 Java8 的 Base64 class,以便将来的 Java 升级不会'不会影响他们。
另一方面,如果您必须保持与 Java7 或更早版本的兼容性,则不能使用 Base64(因为它是在 Java8 上引入的)。为此,您应该继续使用 DatatypeConverter,或者更好的是,使用另一个独立库 encode/decode in base 64(例如 Apache Commons 64 )
我目前正在做一个需要 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
?
是否有不同的表现方式?
整个 javax.xml.bind 模块已在 Java9 弃用(甚至删除) https://docs.oracle.com/javase/9/docs/api/java.xml.bind-summary.html
如果您的项目正在使用 Java8 之后的版本,请停止使用该包并改用 Java8 的 Base64 class,以便将来的 Java 升级不会'不会影响他们。
另一方面,如果您必须保持与 Java7 或更早版本的兼容性,则不能使用 Base64(因为它是在 Java8 上引入的)。为此,您应该继续使用 DatatypeConverter,或者更好的是,使用另一个独立库 encode/decode in base 64(例如 Apache Commons 64 )