java base64编码、解码的三种方式总结
1.用法介绍
方式一:DatatypeConverter
说明:使用jdk自带的DatatypeConverter.java类实现,但是jdk版本必须>=1.6。
importjava.io.UnsupportedEncodingException; importjavax.xml.bind.DatatypeConverter;
编码
/**
*base64编码之方法一
*@explainDatatypeConverter.java实现
*@paramstr
*待编码字符串
*@return编码字符串
*/
publicstaticStringencode(Stringstr){
//base64字符串
Stringbase64Str="";
try{
//String-->byte[]
byte[]data=str.getBytes("utf-8");
//编码
base64Str=DatatypeConverter.printBase64Binary(data);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnbase64Str;
}
解码
/**
*base64解码之方法一
*@explainDatatypeConverter.java实现
*@parambase64Str
* 待解码字符串
*@return解码字符串
*/
publicstaticStringdecode(Stringbase64Str){
//解码后的字符串
Stringstr="";
//解码
byte[]base64Data=DatatypeConverter.parseBase64Binary(base64Str);
try{
//byte[]-->String
str=newString(base64Data,"utf-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnstr;
}
方式二:Base64
说明:使用jdk自带的Base64.java类实现,但是jdk版本必须>=1.8。
importjava.io.UnsupportedEncodingException; importjava.util.Base64;
编码
/**
*base64编码之方法二
*@explainBase64.java实现
*@paramstr
* 待编码字符串
*@return编码字符串
*/
publicstaticStringencode2(Stringstr){
//base64字符串
Stringbase64Str="";
try{
//String-->byte[]
byte[]data=str.getBytes("utf-8");
//编码
base64Str=Base64.getEncoder().encodeToString(data);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnbase64Str;
}
解码
/**
*base64解码之方法二
*@explainBase64.java实现
*@parambase64Str
* 待解码字符串
*@return解码字符串
*/
publicstaticStringdecode2(Stringbase64Str){
//解码后的字符串
Stringstr="";
//解码
byte[]base64Data=Base64.getDecoder().decode(base64Str);
try{
//byte[]-->String
str=newString(base64Data,"utf-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnstr;
}
方式三:Base64
所需jar包:commons-codec.jar
importjava.io.UnsupportedEncodingException; importorg.apache.commons.codec.binary.Base64;
编码
/**
*base64编码之方法三
*@explainBase64.java实现
*@paramstr
* 待编码字符串
*@return编码字符串
*/
publicstaticStringencode3(Stringstr){
//base64字符串
Stringbase64Str="";
try{
//String-->byte[]
byte[]data=str.getBytes("utf-8");
//编码
base64Str=Base64.encodeBase64String(data).replaceAll("\r\n","");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnbase64Str;
}
解码
/**
*base64解码之方法三
*@explainBase64.java实现
*@parambase64Str
* 待解码字符串
*@return解码字符串
*/
publicstaticStringdecode3(Stringbase64Str){
//解码后的字符串
Stringstr="";
//解码
byte[]base64Data=Base64.decodeBase64(base64Str);
try{
//byte[]-->String
str=newString(base64Data,"utf-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
returnstr;
}
2.测试
publicstaticvoidmain(String[]args){
Stringstr="http://www.cnblogs.com/Marydon20170307";
Stringbase64=Base64Utils.encode(str);//aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9NYXJ5ZG9uMjAxNzAzMDc=
System.out.println(base64);
Stringstr2=Base64Utils.decode(base64);
System.out.println(str.equals(str2));//true
}
3.效率比较
快-->慢:方式二>方式一>方式三
因此,如果项目用的是jdk1.8,最佳选择是方式二;jdk1.6,最佳选择是方式一。
以上就是javabase64编码、解码的三种方式总结的详细内容,更多关于javabase64编码、解码的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。