文件(pdf、ofd、txt)和Base64的互相转化
描述:Base64是一种编码算法,3字节扩为4字节,长度增加33%
参考链接:https://www.liaoxuefeng.com/wiki/897692888725344/949441536192576
1.文件转Base64
/**
* 获取文件base64
* @param filePath:文件本地磁盘路径
* @return:base64串
*/
public static String fileToBase64(String filePath){
String base64String=null;
InputStream in = null;
try {
if(StringUtils.isNotEmpty(filePath)){
File file=new File(filePath);
if(file.exists()&&file.isFile()){
in = new FileInputStream(file);
byte[] bytes=new byte[(int)file.length()];
in.read(bytes);
base64String=Base64.encodeBase64String(bytes);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(null!=in){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return base64String;
}
2.base64转文件
/**
* 將base64转为文件
* @param base64 文件base64
* @param filePath 文件路径
*/
public static void base64ToFile(String base64,String filePath) throws Exception {
OutputStream os = null;
try {
if(StringUtils.isEmpty(filePath)){
throw new Exception("文件路径不能为空");
}
File file=new File(filePath);
if(!file.exists()){
file.createNewFile();
os=new FileOutputStream(file);
byte[] fileBytes = Base64.decodeBase64(base64);
os.write(fileBytes);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(null != os){
os.close();
}
}
}