java实现文件和base64相互转换
作者:小花皮猪
这篇文章主要为大家详细介绍了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相互转换的资料请关注脚本之家其它相关文章!