base64与文件的互相转换(Java)
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Base64;
public class Base64FileConverter {
// 文件转换为Base64字符串
public static String encodeFileToBase64(File file) throws IOException {
try (FileInputStream fileInputStream = new FileInputStream(file)) {
byte[] fileBytes = new byte[(int) file.length()];
fileInputStream.read(fileBytes);
return Base64.getEncoder().encodeToString(fileBytes);
}
}
// Base64字符串转换为文件
public static void decodeBase64ToFile(String base64Str, File file) throws IOException {
byte[] decodedBytes = Base64.getDecoder().decode(base64Str);
try (FileOutputStream fileOutputStream = new FileOutputStream(file)) {
fileOutputStream.write(decodedBytes);
}
}
public static void main(String[] args) {
File inputFile = new File("input.txt"); // 输入文件
File outputFile = new File("output.txt"); // 输出文件
try {
// 文件转Base64
String encodedString = encodeFileToBase64(inputFile);
System.out.println("Base64 Encoded String: " + encodedString);
// Base64转文件
decodeBase64ToFile(encodedString, outputFile);
// 确认输出文件与输入文件内容一致
assert inputFile.length() == outputFile.length();
System.out.println("File decoded successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
这段代码展示了如何在Java中将文件内容编码为Base64字符串,以及如何将Base64字符串解码回原始文件。代码中使用了java.util.Base64
类来进行编码和解码操作。在main
方法中,我们创建了输入文件和输出文件的实例,并调用相应的方法进行转换。最后,我们使用断言来验证转换后的文件是否与原始文件内容一致。
评论已关闭