在Java中,实现Base64编码与解码(用于文件内容的转换)通常涉及到java.util.Base64
类(Java 8及以上版本)。以下是两个相互转换的方法,展示如何对文件进行Base64编码,以及如何将从Base64解码的文件内容写回到文件中。
package common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.Base64;
public class GetBase64Util {
private static final Logger logger = LoggerFactory.getLogger(CustomCodeGenerator.class);
//base64转换文件
//base64String base64内容 ,fileName 需要转换文件的存储名 ext 文件后缀
public static String Base64ToFile(String base64String,String fileName,String ext){
String savePath= "D:\\/"+fileName+"."+ext; //文件要保存的路径
byte[] decodedBytes = Base64.getDecoder().decode(base64String);
// 写入到文件
try (FileOutputStream fos = new FileOutputStream(savePath)) {
fos.write(decodedBytes);
logger.info("文件已成功写入到: " + savePath);
} catch (IOException e) {
e.printStackTrace();
}
return savePath;
}
//文件转BASE64
//filePath 文件路径
public static String FileToBase64(String filePath) throws IOException {
File file = new File(filePath);
FileInputStream fileInputStream = null;
fileInputStream = new FileInputStream(file);
byte[] bytes = new byte[(int)file.length()];
fileInputStream.read(bytes);
fileInputStream.close();
return Base64.getEncoder().encodeToString(bytes);
}
public static void main(String[] args) throws IOException {
//文件转base64测试
String filePath = "D:\\test.txt"; // 替换为你的文件路径
String base64String = FileToBase64(filePath);
System.out.println(base64String);
//base64转文件测试
String base64String = "MTIzMTMxMjMxMjM=";
String fileName = "123";
String ext = "txt";
String savePath = Base64ToFile(base64String,fileName,ext);
System.out.println(savePath);
}
}
文件示例: FileToBase64方法转换结果: Base64ToFile方法转换结果: