利用java8工具包提供的编解码API,代替sun.misc.BASE64Encoder等其它,目的是追求更好的性能
参考致谢:https://www.jb51.net/article/95298.htm
https://www.cnblogs.com/alter888/p/9140732.html
https://www.runoob.com/java/java8-base64.html
public class Base64Util {
public static final Base64.Encoder enco = Base64.getEncoder();
public static final Base64.Decoder deco = Base64.getDecoder();
public static void main(String[] args) {
String str = readFileAndEncoder(Paths.get("E:\\TMP\\my.PNG")); //NIO--- 编码
byte[] b = readBase64StrAndDecoder(str); // NIO--- 解码
writeBinaryToFile(Paths.get("E:\\TMP\\mybase64.PNG"), b); // NIO--- 二进制写入文件
}
//NIO--- 编码
public static String readFileAndEncoder(Path path) {
String Str = null;
try {
byte[] b = Files.readAllBytes(path);
Str = enco.encodeToString(b);
} catch (IOException e) {
e.printStackTrace();
}
return Str;
}
//NIO--- 解码
public static byte[] readBase64StrAndDecoder(String str) {
if (null != str) return deco.decode(str);
else return null;
}
//NIO--- 二进制写入文件
public static void writeBinaryToFile(Path dest, byte[] b) {
if (null != b) {
try {
Files.write(dest, b, StandardOpenOption.CREATE);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
html测试
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width">
<title>测试Base64编码</title>
<style type="text/css">
#thisImage {
margin: 20px auto;
-webkit-border-radius: 50%;
border-radius: 50%;
background: url(data:image/png;base64,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