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相互转换的资料请关注脚本之家其它相关文章!

相关文章

  • springcloud项目快速开始起始模板的实现

    springcloud项目快速开始起始模板的实现

    本文主要介绍了springcloud项目快速开始起始模板思路的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java current并发包超详细分析

    Java current并发包超详细分析

    current并发包、在JDK1.5之前Java并没有提供线程安全的一些工具类去操作多线程,需要开发人员自行编写实现线程安全,但仍然无法完全避免低性能、死锁、资源管理等问题。在JDK1.5时新增了java.util.current并发包,其中提供了许多供我们使用的并发编程工具类
    2023-02-02
  • javaweb实战之商城项目开发(二)

    javaweb实战之商城项目开发(二)

    这篇文章主要针对javaweb商城项目开发进行实战演习,利用mybatis创建DAO层,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Java并发编程面试之线程池

    Java并发编程面试之线程池

    线程池和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • SpringBoot Maven Clean报错解决方案

    SpringBoot Maven Clean报错解决方案

    这篇文章主要介绍了SpringBoot Maven Clean报错解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java 实现浏览器下载文件及文件预览

    Java 实现浏览器下载文件及文件预览

    这篇文章主要介绍了Java 实现浏览器下载文件及文件预览,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • JAVA实现单例模式的四种方法和一些特点

    JAVA实现单例模式的四种方法和一些特点

    JAVA实现单例模式的四种方法和一些特点,需要的朋友可以参考一下
    2013-03-03
  • 浅谈java多态的实现主要体现在哪些方面

    浅谈java多态的实现主要体现在哪些方面

    下面小编就为大家带来一篇浅谈java多态的实现主要体现在哪些方面。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Java的Spring框架下的AOP编程模式示例

    Java的Spring框架下的AOP编程模式示例

    这篇文章主要介绍了Java的Spring框架下的AOP编程模式示例,文中分别讲到了基于XML和基于@AspectJ的自定义方式,需要的朋友可以参考下
    2015-12-12
  • Spring-ImportSelector接口功能使用案例

    Spring-ImportSelector接口功能使用案例

    ImportSelector接口是至spring中导入内部类或者外部类的核心接口,只需要其定义的方法内返回需要创建bean的class字符串就好了,这篇文章主要介绍了Spring-ImportSelector接口功能介绍,需要的朋友可以参考下
    2023-09-09

最新评论