Java附件和base64相互转换

news2024/9/28 9:16:15

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保存到本地了:

在这里插入图片描述

参考代码

完整代码如下,供参考:

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;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1181555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试面试题汇总,(测试技术+人力资源+进阶规划)含2023面试题和答案总结

什么是兼容性测试?单元测试的策略有哪些?当开发人员说不是BUG时,你如何应付?等,尾部有最新BAT的Python高级自动化工程师面试题目和答案福利,想要的就快来领走吧!(领取方式见文末&…

【机器学习3】有监督学习经典分类算法

1 支持向量机 在现实世界的机器学习领域, SVM涵盖了各个方面的知识, 也是面试题目中常见的基础模型。 SVM的分类结果仅依赖于支持向量,对于任意线性可分的两组点,它 们在SVM分类的超平面上的投影都是线性不可分的。 2逻辑回归 …

安装 MinGW

实际上是将 GCC(C语言编译器) 移植到了 Windows 平台下。 1、网上下载 下载安装器 mingw-get-setup.exe,路径https://osdn.net/projects/mingw/ 2、打开点击install 3、选择路径continue 4、文件加载完成之后选择continue 5、勾选这两个 6…

数据结构与算法之美学习笔记:17 | 跳表:为什么Redis一定要用跳表来实现有序集合?

目录 前言如何理解“跳表”?用跳表查询到底有多快?跳表是不是很浪费内存?高效的动态插入和删除跳表索引动态更新解答开篇内容小结 前言 本节课程思维导图: 二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实…

润色论文Prompt

你好,我现在开始写论文了,我希望你可以扮演帮我润色论文的角色我写的论文是关于xxxxx领域的xxxxx,我希望你能帮我检查段落中语句的逻辑、语法和拼写等问题我希望你能帮我检查以下段落中语句的逻辑、语法和拼写等问题同时提供润色版本以符合学…

freeswich学习

写在前面 因为所在部分主要负责公司客服业务,需要了解freeswich相关内容,所以这里将学习内容记录下。 1:安装freesswich freeswich是一个实现了软交换协议的开源软件,可以对对接运营上的通话线路,实现拨打电话。 安…

编程未来规划笔记

编程思考 Python 自动化办公、深度学习、自然语言处理(调用各种库) Html Css 写网页 学习不要怕忘 为什么学的快、忘得快 Google、写代码、放文档 高度提炼 学什么;存在的意义是什么 更好的拓展性;可维护性 实践 原理 顶层设计…

建材行业微信小程序制作全攻略

随着移动互联网的发展,微信小程序成为各行各业推广和服务的新方式。对于建材行业来说,制作一个微信小程序商城能够提供更方便快捷的购买途径,提升用户体验。下面将为大家介绍建材行业微信小程序制作的全攻略。 第一步:注册登录账号…

人工智能一种现代的方法 第四章 非经典搜索 上(局部搜索)

文章目录 人工智能一种现代的方法 第四章 非经典搜索 上前言4.1 局部搜索4.1.1 爬山法4.1.2 爬山法变形4.1.3模拟退火搜索4.1.4 局部束搜索4.1.5 遗传算法 4.2 连续空间的局部搜索4.2.1 梯度下降4.2.2 约束优化 小结 人工智能一种现代的方法 第四章 非经典搜索 上 前言 在第三…

ASUS华硕灵耀X2 Duo UX481FA(FL,FZ)_UX4000F工厂模式原装出厂Windows10系统

下载链接:https://pan.baidu.com/s/1sRHKBOyc3zu1v0qw4dSASA?pwd7nb0 提取码:7nb0 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyASUS华硕电脑管家等预装程序所需要工具:16G或以上…

2023 年最佳 Android 数据恢复软件工具

Android 数据恢复软件将使您能够从 Android 智能手机中检索所有已删除的文件。您需要此类软件的原因是由于不同情况下会丢失数据。例如,病毒攻击会导致数据损坏和文件丢失。 Android 数据恢复软件工具清单 以下是十个最佳 Android 数据恢复软件工具,用于…

有哪些你直呼好用的科研效率神器?

今天来分享几款科研免费小工具,帮你读懂外刊、追踪文献、搞定翻译、解除限制……甚至轻松制作PPT。一身好装备,提高科研效率。 一、 浏览器插件 1.1 easyScholar 一款助力科研的浏览器扩展 一款助力科研的浏览器扩展 - easyScholar | 显示期刊等级\SC…

从0到1的Springcloud Alibaba项目,一篇入门!!!

1、新建项目 我们用maven管理项目 第一步:选择maven 第二步:项目命名,项目路径 第三步:进入项目,把src文件夹删掉(不删也没事,主要是用不到这个文件夹) 2、引入项目依赖 在父项目…

matlab 读写ENVI标准数据

本博客主要讲解如何读、生成ENVI标准格式的数据。主要分为四部分:读取ENVI头文件、读取ENVI数据、写入ENVI头文件、生成ENVI标准数据,最后附加讲解了本人写的生成hdr文本文件代码。此外,文中还具体介绍写代码的一些思路。 一、读取ENVI头文件…

【数据结构】单链表之--无头单向非循环链表

前言:前面我们学习了动态顺序表并且模拟了它的实现,今天我们来进一步学习,来学习单链表!一起加油各位,后面的路只会越来越难走需要我们一步一个脚印! 💖 博主CSDN主页:卫卫卫的个人主页 &#x…

kafka可视化工具

Offset Explorer kafka可视化工具

Spring Boot 统一处理功能

目录 1.用户登陆权限验证 1.1 每个方法验证 1.2 Spring AOP 用户统一登陆验证 1.3 拦截器 1.3.1 自定义拦截器 1.3.2 将自定义拦截器配置到系统设置中,并且设置拦截规则 1.3.3 排除所有的静态资源 1.4 登录拦截器(练习) 1.5 拦截器原…

二叉树—相关计算题

目录 一、概念题 二、计算题 1、节点数 2、深度 3、遍历序列 一、概念题 1、在用树表示的目录结构中,从根目录到任何数据文件,有( )通道 答案:唯一一条,树的特点是不相交,所以不可能有多…

CAN总线数据采集工具PCAN的使用教程

系列文章目录 文章目录 系列文章目录pcan使用PCAN-Explorer 5安装PCAN-USB Pro安装如下PEAK-System_Driver-Setup安转如下PCAN-View操作步骤 通讯测试检查安装成果trace 文件下载 pcan使用 PCAN-Explorer 5安装 默认路径——all user——yes——next——finish PCAN-USB Pro…

洛谷P1024 [NOIP2001 提高组] 一元三次方程求解(优雅的暴力+二分,干净利落)

P1024 [NOIP2001 提高组] 一元三次方程求解 前言题目题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 题目分析注意事项 代码后话额外测试用例样例输入 #2样例输出 #2 王婆卖瓜 题目来源 前言 没有前言,可能因为作者忘了编辑 题目 题目描述 有形如&…