java实现base64文件的相互转换

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值