package com.unnet.yjs.util;
import com.xiaoleilu.hutool.codec.Base64;
import com.xiaoleilu.hutool.date.DateUtil;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.*;
import java.util.Date;
/**
* Email: love1208tt@foxmail.com
* Copyright (c) 2019. missbe
* @author lyg 19-7-9 下午7:22
*
* 文件和Base64互转工具
**/
public class Base64Util {
/**
* BASE64解密
*/
public static byte[] decryptBASE64(String key) throws Exception {
return (new BASE64Decoder()).decodeBuffer(key);
}
/**
* BASE64加密
*/
public static String encryptBASE64(byte[] key) throws Exception {
return (new BASE64Encoder()).encodeBuffer(key);
}
/**
* base64字符串转文件
*/
public static File base64ToFile(String base64) {
File file = null;
String fileName = DateUtil.format(new Date(),"yyyyMMddhhmmss")+System.currentTimeMillis();
FileOutputStream out = null;
try {
// 解码,然后将字节转换为文件
file = new File(fileName);
if (!file.exists()) {
//noinspection ResultOfMethodCallIgnored
file.createNewFile();
}
// 将字符串转换为byte数组
byte[] bytes = Base64.decode(base64,"utf-8");
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
byte[] buffer = new byte[1024];
out = new FileOutputStream(file);
int byteread;
while ((byteread = in.read(buffer)) != -1) {
// 文件写操作
out.write(buffer, 0, byteread);
}
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
if (out!= null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return file;
}
/**
* 文件转base64字符串
*/
public static String fileToBase64(File file) {
String base64 = null;
InputStream in = null;
try {
in = new FileInputStream(file);
byte[] bytes = new byte[in.available()];
int length = in.read(bytes);
//encodeToString(bytes, 0, length, Base64.DEFAULT);
base64 = Base64.encode(bytes, "utf-8");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return base64;
}
}
Java-Base64工具实现文件和Base64互转-Base64加密解密
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一些工具方法,你可以写成Category,也可以直接复制过去当类方法,不用苦苦的去搜索了
- 图片转码成base64的两种方式,为什么需要两种呢,第一种是用sun公司的sun.misc.BASE64Encod...
- 本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工...