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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。