这篇文章主要介绍了java base64编码、解码的三种方式,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
1.用法介绍
方式一:DatatypeConverter
说明:使用jdk自带的DatatypeConverter.java类实现,但是jdk版本必须=1.6。
导入Java。io。unsupportedencodingexception
导入javax。XML。绑定。数据类型转换器;
编码
/**
* base64编码之方法一
* @解释一下DatatypeConverter.java实现
* @param str
* 待编码字符串
* @返回编码字符串
*/
公共静态字符串编码(字符串str) {
//base64字符串
string base 64 str=
尝试{
//字符串字节[]
byte[]data=str。getbytes(' utf-8 ');
//编码
base 64 str=数据类型转换器。打印base 64二进制(数据);
} catch(UnsupportedEncodingException e){
e。printstacktrace();
}
返回base64Str
}
解码
/**
* base64解码之方法一
* @解释一下DatatypeConverter.java实现
* @param base64Str
* 待解码字符串
* @返回解码字符串
*/
公共静态字符串解码(String base64Str) {
//解码后的字符串
string str=
//解码
byte[]base 64 data=datatype转换器。解析base 64二进制(base 64字符串);
尝试{
//字节[] -字符串
str=新字符串(base64Data,' utf-8 ');
} catch(UnsupportedEncodingException e){
e。printstacktrace();
}
返回字符串;
}
方式二:Base64
说明:使用jdk自带的Base64.java类实现,但是jdk版本必须=1.8。
导入Java。io。unsupportedencodingexception
导入Java。util。base64
编码
/**
* base64编码之方法二
* @解释一下Base64.java实现
* @param str
* 待编码字符串
* @返回编码字符串
*/
公共静态字符串编码2(字符串str) {
//base64字符串
string base 64 str=
尝试{
//字符串字节[]
byte[]data=str。getbytes(' utf-8 ');
//编码
base64Str=Base64.getEncoder().编码字符串(数据);
} catch(UnsupportedEncodingException e){
e。printstacktrace();
}
返回base64Str
}
解码
/**
* base64解码之方法二
* @解释一下Base64.java实现
* @param base64Str
* 待解码字符串
* @返回解码字符串
*/
公共静态字符串decode2(String base64Str) {
//解码后的字符串
string str=
//解码
byte[]base64数据=base64。获取解码器().解码(基数64 str);
尝试{
//字节[] -字符串
str=新字符串(base64Data,' utf-8 ');
} catch(UnsupportedEncodingException e){
e。printstacktrace();
}
返回字符串;
}
方式三:Base64
所需冲突包:commons-codec.jar
导入Java。io。unsupportedencodingexception
导入org。阿帕奇。公地。编解码器。二进制。base64
编码
/**
* base64编码之方法三
* @解释一下Base64.java实现
* @param str
* 待编码字符串
* @返回编码字符串
*/
公共静态字符串编码3(字符串str) {
//base64字符串
string base 64 str=
尝试{
//字符串字节[]
byte[]data=str。getbytes(' utf-8 ');
//编码
base64 str=base64。编码base 64字符串(数据)。replaceAll('\r\n ',' ');
} catch(UnsupportedEncodingException e){
e。printstacktrace();
}
返回base64Str
}
解码
/**
* base64解码之方法三
* @解释一下Base64.java实现
* @param base64Str
* 待解码字符串
* @返回解码字符串
*/
公共静态字符串decode3(String base64Str) {
//解码后的字符串
string str=
//解码
byte[]base 64数据=base 64。解码base 64(base 64 str);
尝试{
//字节[] -字符串
str=新字符串(base64Data,' utf-8 ');
} catch(UnsupportedEncodingException e){
e。printstacktrace();
}
返回字符串;
}
2.测试
公共静态void main(String[] args) {
字符串str='http://www.cnblogs.com/Marydon20170307';
string base64=base 64 utils。编码(字符串);//ahr 0 CDO VL 3d y 5 jbm jsb 2 dzlmnvbs 9 nyxj 5 ZG 9 umjaxnzamdc=
系统。出去。println(base64);
string str 2=base 64 utils。解码(base64);
系统。出去。println(字符串。equals(str 2));//真
}
3.效率比较
快-慢:方式二方式一方式三
因此,如果项目用的是jdk1.8,最佳选择是方式二;jdk1.6,最佳选择是方式一。
以上是java base64编解码三种方式总结的详细内容。更多关于java base64编解码的信息,请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。