我尝试过两种方式:java自带的sun.misc的工具类,还有commons-codec.jar

1、sun.misc的工具类

         String encoderStr = null;
BASE64Encoder encoder = new BASE64Encoder();
try {
encoderStr = encoder.encode(str.getBytes(DEFAULT_CHARSET));
} catch (UnsupportedEncodingException e) {
log.error("字符串【" + str + "】base64编码失败", e);
}

但测试的结果发现,需要自行对\r和\n做replaceAll替换为“”,得到的str才是正确的。

2、commons-codec.jar

  这个第三方开源jar包也提供了对文件的编码和解码,简单也很好用,建议

String strBase64 = base64.encodeToString(tempStrBase64.toString().getBytes(DEFAULT_CHARSET));

  其他用法,请参考api:

    http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Base64.html

  对比较小的文件编码、解码:

 byte[] source = ...; // load your data here

 byte[] encoded = Base64.encode(source);

 byte[] decoded = Base64.decode(encoded);

  对比较大的文件编码、解码:

 InputStream inputStream = new FileInputStream("source.jpg");

 OutputStream outputStream = new FileOutputStream("encoded.b64");

 Base64.encode(inputStream, outputStream);

 outputStream.close();

 inputStream.close();

 代码示例Base64解码:

 InputStream inputStream = new FileInputStream("encoded.b64");

 OutputStream outputStream = new FileOutputStream("decoded.jpg");

 Base64.decode(inputStream, outputStream);

 outputStream.close();

 inputStream.close();

Java Base64编码解码实现的更多相关文章

  1. java base64编码解码

    第一种.DatatypeConverter 使用JDK自带DatatypeConverter.java类实现,JDK版本必须>=1.6 /** * @Description base64编码 * ...

  2. Java Base64 编码解码方案总结

    Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便.在实际应用上,Base64除了能将Binary资料可视化之外 ...

  3. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  4. Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net

    Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码, 1 1.1. 子模式 urlsafe Or  url  ...

  5. Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net

    Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码,1 1.1. 子模式 urlsafe Or  url u ...

  6. Kotlin/Java Base64编码和解码(图片、文件)

    原文: Kotlin/Java Base64编码和解码(图片.文件) | Stars-One的杂货小窝 最近在项目中使用到了Base64编码和解码,便是稍微写篇文章记录一下 PS:本文代码都是使用Ko ...

  7. OpenSSL 使用 base64 编码/解码

    简述 关于 OpenSSL 的介绍及安装请参见:Windows下编译OpenSSL 下面主要介绍有关 OpenSSL 使用 base64 编码/解码. 简述 编码解码 更多参考 编码/解码 #incl ...

  8. 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  9. Javascript中Base64编码解码的使用实例

    Javascript为我们提供了一个简单的方法来实现字符串的Base64编码和解码,分别是window.btoa()函数和window.atob()函数. 1 var encodedStr = win ...

随机推荐

  1. YTU 2990: 链表的基本运算(线性表)

    2990: 链表的基本运算(线性表) 时间限制: 1 Sec  内存限制: 128 MB 提交: 1  解决: 1 题目描述 编写一个程序,实现链表的各种基本运算(假设顺序表的元素类型为char),主 ...

  2. c#之委托所有方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  3. poj1961 Period

    我们考虑KMP算法中fail失配指针的意义. 对于一个模式串(Pattern),位置i对应的失配指针fail[i]是那个位置: 这个位置满足的条件是,子串[0, fail[i])是位置i(不含)的后缀 ...

  4. A simple problem 分类: 哈希 HDU 2015-08-06 08:06 1人阅读 评论(0) 收藏

    A simple problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...

  5. wpf的研究和反思

    WPF的研究和反思 目前是否适合使用wpf      WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET F ...

  6. java5、java6、java7、java8的新特性

    Java5: 1.泛型 Generics:        引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处. Parameterized Type作为参数 ...

  7. 2016年12月11日 星期日 --出埃及记 Exodus 21:6

    2016年12月11日 星期日 --出埃及记 Exodus 21:6 then his master must take him before the judges. He shall take hi ...

  8. java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

    今天用maven编写Selenium测试程序时,调用 HtmlUnitDriver driver = new HtmlUnitDriver(true); 反法时报错如下: java.lang.NoCl ...

  9. Fragment懒加载

    package com.bpj.lazyfragment;import android.support.v4.app.Fragment;/* *baseFragment */ public class ...

  10. SaveXml的方法汇总

    /// <summary> /// 保存XML文件 /// </summary> /// <returns></returns> public bool ...