我尝试过两种方式: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. 最小生成树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind

    最小支撑树树--Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind 最小支撑树树 前几节中介绍的算法都是针对无权图的,本节将介绍带权图的最小 ...

  2. TreeView 节点的显示,读取,操作

    using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq ...

  3. Out of Hay

    Out of Hay Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13094 Accepted: 5078 Descripti ...

  4. Uva 1347,旅行

    题目链接:https://uva.onlinejudge.org/external/13/1347.pdf 这个题和uva 1658题目很像,只是加了一点,就是每个点都要走,刚开始,我以为可以直接拆点 ...

  5. python 数据加密以及生成token和token验证

    代码如下: # -*- coding: utf-8 -*- from passlib.apps import custom_app_context as pwd_context import conf ...

  6. mipi协议中文详解

    一.MIPI MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写.MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放 ...

  7. CentOS 安装ftp

    Linux安装ftp组件 1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y insta ...

  8. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B

    Description You are given a table consisting of n rows and m columns. Numbers in each row form a per ...

  9. tarjan算法模板

    终于能自己完整的打下来 #include<cstdio> #include<cstring> #include<iostream> #include<vect ...

  10. ubuntu安装StarDict星际译王

    http://sixipiaoyang.blog.163.com/blog/static/6232358820144146386437/ 1,安装StarDict星际译王. 这是linux系统中最常用 ...