项目中有时需要通过接口传输文件,则一般通过将文件转为base64字符串进行传输。

需要引入的包:

<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.13</version>
</dependency>

文件转base64字符串:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;import org.apache.commons.codec.binary.Base64;public class Test {/**    * @Description: 文件转为base64字符串。filePath:文件路径* @Param: [filePath]* @return: java.lang.String* @Date: 2020/12/25*/public static String fileToBase64(String filePath) throws IOException {File file = new File(filePath);FileInputStream inputFile = null;byte[] buffer = null;try {inputFile = new FileInputStream(file);buffer = new byte[(int) file.length()];inputFile.read(buffer);} catch (Exception e) {e.printStackTrace();} finally {if (null != inputFile) {inputFile.close();}}byte[] bs = Base64.encodeBase64(buffer);return new String(bs);}public static void main(String[] args) {String filePath = "D:/test.txt";String base64Str = "";try {base64Str = fileToBase64(filePath);} catch (IOException e) {e.printStackTrace();}System.out.println(base64Str);}
}

输出结果:

6L+Z5piv5rWL6K+V5paH5Lu25ZKMYmFzZTY05a2X56ym5Liy5LqS6L2s

base64字符串转文件:

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import org.apache.commons.codec.binary.Base64;public class Test {/**    * @Description: 文件转为base64字符串。filePath:文件路径* @Param: [filePath]* @return: java.lang.String* @Date: 2020/12/25*/public static String fileToBase64(String filePath) throws IOException {File file = new File(filePath);FileInputStream inputFile = null;byte[] buffer = null;try {inputFile = new FileInputStream(file);buffer = new byte[(int) file.length()];inputFile.read(buffer);} catch (Exception e) {e.printStackTrace();} finally {if (null != inputFile) {inputFile.close();}}byte[] bs = Base64.encodeBase64(buffer);return new String(bs);}/*** base64字符串转文件* @param base64Str* @param targetFilePath* @return*/public static void base64ToFile(String base64Str, String targetFilePath) {byte[] buffer = Base64.decodeBase64(base64Str);FileOutputStream out = null;try {out = new FileOutputStream(targetFilePath);out.write(buffer);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {if (null != out) {try {out.close();} catch (IOException e) {e.printStackTrace();}}}}public static void main(String[] args) {String base64Str = "6L+Z5piv5rWL6K+V5paH5Lu25ZKMYmFzZTY05a2X56ym5Liy5LqS6L2s";String targetFilePath = "D:/result.txt";base64ToFile(base64Str, targetFilePath);}
}

得到文件:

Java之文件和base64字符串互转相关推荐

  1. java中文件转Base64字符串及Base64字符串转文件

    文件转Base64字符串及Base64字符串转文件 import org.apache.commons.codec.binary.Base64;/** * @Description: 文件转为base ...

  2. Java byte数组与十六进制字符串互转

    Java byte数组与十六进制字符串互转 博客分类: Java Javajava 十六进制java hex Java 加密解密基础 Java byte数组与十六进制字符串互转 Java BASE64 ...

  3. Android 文件转base64字符串,json文件转对象

    /*** 文件转base64字符串** @param file* @return*/ public static String fileToBase64(File file) {String base ...

  4. JS上传文件(base64字符串和二进制文件流)

    ①以base64字符串上传(使用FileReader对象获取文件的base64字符串) FileReader参考文档: FileReader - Web API 接口参考 | MDN FileRead ...

  5. Java创建文件并写入字符串

    Java创建文件并写入字符串,如果文件存在则只写入字符串. String sourceString = "sourceString"; //待写入字符串 byte[] source ...

  6. Base64工具类(文件、base64字符串、Bitmap相互转换)

    马上吃饭了,懒得写太多了,先对付看吧 /*** Author : 马占柱* E-mail : mazhanzhu_3351@163.com* Time : 2019/5/19 9:30* Desc : ...

  7. Java实现图片与Base64编码互转

    2019独角兽企业重金招聘Python工程师标准>>> import java.io.FileInputStream; import java.io.FileOutputStream ...

  8. 二维码 生成工具类(文件转Base64字符串,Base64字符串转文件)

    希望我的知识榨干了能帮到你解除困难,要是没有帮助你的,问度娘和知爹 一.POM.xml依赖下载 二.工具类提供 一.POM.xml依赖下载 <!-- 生成二维码依赖 --><depe ...

  9. java 替换文件中的字符串

    import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Prin ...

最新文章

  1. 第一次当领导,一定要知道的5个工具
  2. 简单的并发测试工具 ab.exe ab.zip可下载 -摘自网络
  3. 【数据结构与算法】之深入解析“两数相加II”的求解思路与算法示例
  4. 2019CCPC-江西省赛(重现赛)- 感谢南昌大学
  5. 前端学习(3160):react-hello-react之样式的模块化
  6. Nutanix企业云助力嘉里大通提升核心竞争力
  7. java为什么密码比字符串更喜欢char []?
  8. python1加到100总和_从1加到一百总和是多少?有什么公式吗?
  9. 文字处理技术:搞明白了表格是如何参与文字方向的
  10. windows环境下布置定时任务
  11. 特异度(specificity)与灵敏度(sensitivity)
  12. Matlab分析系统的动态性能
  13. OpenResty学习——第七章 Web开发实战2——商品详情页
  14. 基于Qt 5.7.0的适合Window XP系统的应用开发
  15. Nature Medicine 揭示冠状动脉疾病的个体危险因素
  16. 阿里云服务器优惠活动
  17. 基于android的宠物救助站app
  18. Axure 交互学习1 基础页面跳转、鼠标悬停样式
  19. 一别两宽,各生欢喜。
  20. 计算机单词正确的打开方式是怎样的?

热门文章

  1. 计算机科学与技术专业笔记本电压,笔记本充电器
  2. (附源码)计算机毕业设计SSM在线药物配送系统
  3. 数据结构——图的存储及转换
  4. 对运动软件——乐动力的评价
  5. 合肥光源逐束团3维质心位置逐圈数据和Libera的比较续
  6. python如何在图片上添加文字_python在图片中添加文字学习文档
  7. var img = new Image()
  8. Redis 相关知识点
  9. 云服务器平台选择如何注册,云服务器创建指导
  10. 网络防御系统之WEB应用防火墙-WAF概念和功能介绍