java实现文件和base64相互转换

 更新时间:2023年11月08日 09:12:43   作者:小花皮猪  
这篇文章主要为大家详细介绍了java如何实现文件和base64相互转换,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的小伙伴可以跟随小编一起学习一下

1.文件转base64

声明:我用的是Hutool的Base64下的api

package cn.hutool.core.codec;

首先找一张图片

很简单,直接使用Base64的encode方法就可以拿到文件的base64码:

	File file = new File("D:\\Tools\\Images\\北极熊.jpg");
	String encode = Base64.encode(file);

通过断点,可以看到附件的base64就是一串很长的字符串。

2.base64转文件

拿到附件的base64之后,就可以通过该方法进行转换为附件

/** 
     * @description base64转附件     
     * @date 17:17 2023/11/7
     * @param base64 附件的base64码
     * @param filePath 存储路径
     * @return java.io.File
    **/
    public static File base64ToFile(String base64, String filePath) {
        File file = new File(filePath);
        byte[] buffer;
        try {
            BASE64Decoder base64Decoder = new BASE64Decoder();
            buffer = base64Decoder.decodeBuffer(base64);
            FileOutputStream out = new FileOutputStream(filePath);
            out.write(buffer);
            out.close();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return file;
    }

在本地新建文件夹

调用:

查看附件,以及通过base64保存到本地了:

3.参考代码

完整代码如下,供参考:

package com.test.HutoolTest;

import cn.hutool.core.codec.Base64;
import sun.misc.BASE64Decoder;

import java.io.File;
import java.io.FileOutputStream;


public class Base64Test {
    public static void main(String[] args){
        // 本地附件
        File file = new File("D:\\Tools\\Images\\大裤衩.jpg");
        String encode = Base64.encode(file);
        // base64转为附件
        base64ToFile(encode, "D:\\Tools\\Images\\base64ToFile\\"+file.getName());

    }

    /**
     * @description base64转附件
     * @date 17:17 2023/11/7
     * @param base64 附件的base64码
     * @param filePath 存储路径
     * @return java.io.File
    **/
    public static File base64ToFile(String base64, String filePath) {
        File file = new File(filePath);
        byte[] buffer;
        try {
            BASE64Decoder base64Decoder = new BASE64Decoder();
            buffer = base64Decoder.decodeBuffer(base64);
            FileOutputStream out = new FileOutputStream(filePath);
            out.write(buffer);
            out.close();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return file;
    }
}

以上就是java实现文件和base64相互转换的详细内容,更多关于java文件和base64相互转换的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot集成Aviator实现参数校验的示例代码

    SpringBoot集成Aviator实现参数校验的示例代码

    在实际开发中,参数校验是保障系统稳定和数据可靠性的重要措施,Aviator 是一个高性能的表达式引擎,它能够简化复杂的逻辑判断并提升参数校验的灵活性,本文将介绍如何在 Spring Boot 中集成 Aviator,并利用它来实现灵活的参数校验,需要的朋友可以参考下
    2025-02-02
  • Java线程重复执行以及操作共享变量的代码示例

    Java线程重复执行以及操作共享变量的代码示例

    这篇文章主要介绍了Java中对线程重复执行以及操作共享变量的代码示例,来自于Java面试题目的练习整理,需要的朋友可以参考下
    2015-12-12
  • SpringBoot 静态资源导入及首页设置问题

    SpringBoot 静态资源导入及首页设置问题

    本节了解一下 SpringBoot 中 Web 开发的静态资源导入和首页设置,对应 SpringBoot-03-Web 项目,本节主要是从源码的角度,研究了一下静态资源导入和首页设置的问题
    2021-09-09
  • java基于正则提取字符串中的数字功能【如提取短信中的验证码】

    java基于正则提取字符串中的数字功能【如提取短信中的验证码】

    这篇文章主要介绍了java基于正则提取字符串中的数字功能,可用于提取短信中的验证码,涉及java基于正则的字符串匹配相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • SpringBoot两种方式接入DeepSeek的实现

    SpringBoot两种方式接入DeepSeek的实现

    本文主要介绍了SpringBoot两种方式接入DeepSeek的实现,包括HttpClient方式和基于spring-ai-openai的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • java项目启动失败的问题及解决

    java项目启动失败的问题及解决

    这篇文章主要介绍了java项目启动失败的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • java并发编程死锁定义及如何避免死锁

    java并发编程死锁定义及如何避免死锁

    这篇文章主要为大家介绍了java并发编程中死锁的详细说明及如何避免死锁的方法,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步
    2022-02-02
  • Java实现多线程文件下载的代码示例

    Java实现多线程文件下载的代码示例

    本篇文章主要介绍了Java实现多线程下载的代码示例,Java多线程可以充分利用CPU的资源,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • 详解Java 自动装箱与拆箱的实现原理

    详解Java 自动装箱与拆箱的实现原理

    本篇文章主要介绍了详解Java 自动装箱与拆箱的实现原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Java中Dijkstra算法求解最短路径的实现

    Java中Dijkstra算法求解最短路径的实现

    Dijkstra算法是一种解决最短路径问题的常用算法,本文主要介绍了Java中Dijkstra算法求解最短路径的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09

最新评论