文件转Base64字符串及Base64字符串转文件
import org.apache.commons.codec.binary.Base64;
/**
* @Description: 文件转为base64字符串。filePath:文件路径
* @Param: [filePath]
* @return: java.lang.String
* @Date: 2020/12/14
*/
public static String fileToBase64(String filePath) throws IOException {
File file = new File(filePath);
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
inputFile.read(buffer);
inputFile.close();
byte[] bs = Base64.encodeBase64(buffer);
return new String(bs);
}
/**
* @Description: base64转文件.
* @Param: [strBase64 文件base64字符串, outFile 输入文件路径]
* @return: boolean
* @Date: 2020/12/14
*/
public static boolean base64ToFile(String strBase64, File outFile) {
try {
// 解码,然后将字节转换为文件 // 将字符串转换为byte数组
byte[] bytes = java.util.Base64.getDecoder().decode(strBase64);
return copyByte2File(bytes, outFile);
} catch (Exception ioe) {
ioe.printStackTrace();
return false;
}
}
/**
* 将字节码转为文件
*/
private static boolean copyByte2File(byte[] bytes, File file) {
FileOutputStream out = null;
try {
// 转化为输入流
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
// 写出文件
byte[] buffer = new byte[1024];
out = new FileOutputStream(file);
// 写文件
int len = 0;
while ((len = in.read(buffer)) != -1) {
// 文件写操作
out.write(buffer, 0, len);
}
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}