Java Base64转换,Java Base64工具类
================================
©Copyright 蕃薯耀 2019年6月20日
http://fanshuyao.iteye.com/
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
一、Base64优、缺点
优点:
1、减少了http请求;
2、数据就是图片;
3、简单的加密(一般人看不懂)
缺点:
1、图片转换成Base64字符串,字符串会很长
2、影响到数据库性能
二、Base64显示方式:
data:,文本数据 data:text/plain,文本数据 data:text/html,HTML代码 data:text/html;base64,base64编码的HTML代码 data:text/css,CSS代码 data:text/css;base64,base64编码的CSS代码 data:text/JavaScript,Javascript代码 data:text/javascript;base64,base64编码的Javascript代码 data:image/gif;base64,base64编码的gif图片数据 data:image/png;base64,base64编码的png图片数据 data:image/jpeg;base64,base64编码的jpeg图片数据 data:image/x-icon;base64,base64编码的icon图片数据
Html标签使用
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAwADAAAD/2w" alt="Jpeg图片"/>
CSS中使用:
background-image: url("data:image/png;base64,iVBORw0KGgo=...");
三、Base64转换工具类:
1、使用JDK6自带的(不建议使用)
import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; //编码 BASE64Encoder encoder = new BASE64Encoder(); String imageString = encoder.encode(byteArray);//转换成Base64形式 //解码 BASE64Decoder decoder = new BASE64Decoder(); byte[] imageByteArray = decoder.decodeBuffer(imageString);
但这个性能一般,而且转换出来的base64字符串会有换行符,可能还需要替换换行符,避免在某些场景因为分行导致出错。
2、使用Jdk8的Base64工具类
java.util.Base64 //编码 Base64.getEncoder().encodeToString("aaaaaaaa".getBytes("utf-8")); //解码 Base64.getDecoder().decode("c29tZSBzdHJpbmc="); //URL编码 //URL对反斜线“/”有特殊的意义,因此URL编码需要替换掉它,使用下划线替换 Base64.getUrlEncoder().encodeToString("test.do?abcd".getBytes("utf-8")); //MIME编码 //每一行输出不超过76个字符,而且每行以“\r\n”符结束 Base64.getMimeEncoder().encodeToString("aaaaaaaa".getBytes("utf-8")); //流文件编码、解码 Base64.getEncoder().wrap(outputStream); Base64.getDecoder().wrap(inputStream);
性能超好,如果已经使用JDK8,直接使用这个。
基本例子:
String base64String = Base64.getEncoder().encodeToString("我是谁呢?".getBytes("UTF-8")); System.out.println("base64String=" +base64String); byte[] stringByte = Base64.getDecoder().decode(base64String); System.out.println("stringByte=" + new String(stringByte));
结果:
base64String=5oiR5piv6LCB5ZGi77yf stringByte=我是谁呢?
3、使用Spring提供的Base64Utils类
org.springframework.util.Base64Utils;
4、使用apache中的Base64
org.apache.commons.codec.binary.Base64
5、使用第三方工具类(附件有相应的jar包)
net.iharder.Base64; Base64.encodeBytes(bytes); //直接从文件路径获取base64编码 Base64.encodeFromFile("c:/938dcfd836be4e15a225110dc77769d0.jpg");
性能非常好。
Java 使用Base64将图片保存到数据库和显示图片:
https://fanshuyao.iteye.com/blog/2441370
================================
©Copyright 蕃薯耀 2019年6月20日
http://fanshuyao.iteye.com/
伍仔 2016-03-03
寒江独钓 2017-10-27
白诗秀儿 2016-02-19
蓝色幻影 2019-09-23
白诗秀儿 2016-05-30
沙落雁 2016-06-25
泡泡 2016-08-23
白诗秀儿 2016-08-23
牵马的蜘蛛 2018-05-14
沙落雁 2017-03-20
藏家571 2025-03-21
二三 2025-03-21
藏家241 2025-03-21
藏家380 2025-03-21
玄藏 2025-03-21
藏家613 2025-03-21
藏家976 2025-03-21
藏家160 2025-03-21
藏家588 2025-03-21
瑄 2025-03-21