Java Base64编码解码实现
2016-06-29 10:21
423 查看
我尝试过两种方式:java自带的sun.misc的工具类,还有commons-codec.jar
1、sun.misc的工具类
但测试的结果发现,需要自行对\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
对比较小的文件编码、解码:
对比较大的文件编码、解码:
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();
相关文章推荐
- JavaWeb文件下载功能实例代码
- java基础—equals方法
- Spring学习笔记
- JavaWeb文件上传下载功能深入分析(二)
- 学习JAVA浮点数必看文章!
- Java中可变长参数的使用及注意事项
- springmvc和spring的父子容器关系
- spring mvc default controller
- Java正则表达式的Group
- java闭包和回调机制
- 停止线程的两种方式(异常和Return)
- java并发编程——一并发基础
- JavaWeb中Struts2拦截器深入分析(一)
- 关于eclipse中java程序中文备注为乱码的问题
- leetcode-java-151. Reverse Words in a String
- struts2 入门训练2
- 解决eclipse更新SDK慢的问题
- Java Map按键排序和按值排序
- Java中初始化块和静态初始化块的区别
- 深度分析 Java 的枚举类型:枚举的线程安全性及序列化问题