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读写xml上传到AWS存储服务S3的示例

    SpringBoot读写xml上传到AWS存储服务S3的示例

    这篇文章主要介绍了SpringBoot读写xml上传到S3的示例,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下
    2020-10-10
  • Java使用JDBC驱动连接MySQL数据库

    Java使用JDBC驱动连接MySQL数据库

    这篇文章主要为大家详细介绍了Java使用JDBC驱动连接MySQL数据库的具体步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 基于红黑树插入操作原理及java实现方法(分享)

    基于红黑树插入操作原理及java实现方法(分享)

    下面小编就为大家分享一篇基于红黑树插入操作原理及java实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Java多线程场景解析volatile和AtomicLong区别原理

    Java多线程场景解析volatile和AtomicLong区别原理

    这篇文章主要为大家介绍了Java中volatile和AtomicLong的区别原理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 关于idea一直卡在build不动的解决方案

    关于idea一直卡在build不动的解决方案

    这篇文章主要介绍了idea一直卡在build不动的解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Java中ArrayList与顺序表的定义与实现方法

    Java中ArrayList与顺序表的定义与实现方法

    ArrayList是一个实现List接口的类,底层是动态类型顺序表,本质也就是数组,动态主要体现在它的扩容机制,下面这篇文章主要给大家介绍了关于Java中ArrayList与顺序表的定义与实现的相关资料,需要的朋友可以参考下
    2022-07-07
  • SpringBoot日志的使用解读

    SpringBoot日志的使用解读

    本文主要介绍了SpringBoot中日志的使用方法,包括默认输出格式、使用Lombok简化日志代码、通过yml和xml配置日志等
    2025-02-02
  • SpringMVC实现controller中获取session的实例代码

    SpringMVC实现controller中获取session的实例代码

    本篇文章主要介绍了SpringMVC实现controller中获取session的实例代码,具有一定的参考价值,有兴趣的可以了解一下。
    2017-02-02
  • 在SpringBoot中使用MongoDB完成数据存储

    在SpringBoot中使用MongoDB完成数据存储

    本文主要介绍了在SpringBoot中如恶化使用MongoDB完成数据存储,接下来这篇我们将围绕MongoDB进行,MongoDB是一个开源的,面向文档的NoSQL数据库管理系统,使用类似JSON的BSON(二进制JSON)格式来存储数据,具有灵活的数据模型和强大的查询功能,需要的朋友可以参考下
    2023-11-11
  • 轻松掌握Java命令模式

    轻松掌握Java命令模式

    这篇文章主要帮助大家轻松掌握Java命令模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09

最新评论