在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方法转换结果:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐