import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Base64;
public class Base64Util {
/**
* 文件转base64
* @param path 文件完整路径
* @return
*/
public static String fileToBase64(String path) {
String base64 = null;
InputStream in = null;
try {
byte[] b = Files.readAllBytes(Paths.get(path));
base64 = Base64.getEncoder().encodeToString(b);
} catch (Exception e) {
e.printStackTrace();
} finally {
if(in!=null) {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return base64;
}
/**
* base64转文件
* @param base64 文件的base64编码
* @param filePath 文件路径
* @param fileName 文件名
*/
public static void base64ToFile(String base64, String filePath, String fileName) {
File file = null;
//创建文件目录
File dir = new File(filePath);
if(!dir.exists()&&!dir.isDirectory()) {
dir.mkdirs();
}
BufferedOutputStream bos = null;
FileOutputStream fos = null;
byte[] bytes = Base64.getDecoder().decode(base64);
file = new File(filePath+"\\"+fileName);
try {
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(bytes);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(bos!=null) {
try {
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fos!=null) {
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}