【Java程式碼】——base64和file轉換
阿新 • • 發佈:2019-01-08
File轉成編碼成BASE64
/**
*
* @param path
* @return String
* @description 將檔案轉base64字串
* @date 2018年3月20日
* @author changyl
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;//我這裡的base64來自於jdk1.8
public String fileToBase64(String path) {
String base64 = null;
InputStream in = null;
try {
File file = new File(path);
in = new FileInputStream(file);
byte[] bytes = new byte[in.available()];
base64 = Base64.getEncoder().encodeToString(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return base64;
}
BASE64解碼成File檔案
public static void base64ToFile(String base64, String fileName) {
File file = null;
//建立檔案目錄
String filePath="D:\\image";
File dir=new File(filePath);
if (!dir.exists() && !dir.isDirectory()) {
dir.mkdirs();
}
BufferedOutputStream bos = null;
java.io.FileOutputStream fos = null;
try {
byte[] bytes = Base64.getDecoder().decode(base64);
file=new File(filePath+"\\"+fileName);
fos = new java.io.FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
測試
public static void main(String[] args) {
base64ToFile(fileToBase64("G:\\image\\2.jpg"), "2.jpg");
}