Java之文件和base64字符串互转
项目中有时需要通过接口传输文件,则一般通过将文件转为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字符串互转相关推荐
- java中文件转Base64字符串及Base64字符串转文件
文件转Base64字符串及Base64字符串转文件 import org.apache.commons.codec.binary.Base64;/** * @Description: 文件转为base ...
- Java byte数组与十六进制字符串互转
Java byte数组与十六进制字符串互转 博客分类: Java Javajava 十六进制java hex Java 加密解密基础 Java byte数组与十六进制字符串互转 Java BASE64 ...
- Android 文件转base64字符串,json文件转对象
/*** 文件转base64字符串** @param file* @return*/ public static String fileToBase64(File file) {String base ...
- JS上传文件(base64字符串和二进制文件流)
①以base64字符串上传(使用FileReader对象获取文件的base64字符串) FileReader参考文档: FileReader - Web API 接口参考 | MDN FileRead ...
- Java创建文件并写入字符串
Java创建文件并写入字符串,如果文件存在则只写入字符串. String sourceString = "sourceString"; //待写入字符串 byte[] source ...
- Base64工具类(文件、base64字符串、Bitmap相互转换)
马上吃饭了,懒得写太多了,先对付看吧 /*** Author : 马占柱* E-mail : mazhanzhu_3351@163.com* Time : 2019/5/19 9:30* Desc : ...
- Java实现图片与Base64编码互转
2019独角兽企业重金招聘Python工程师标准>>> import java.io.FileInputStream; import java.io.FileOutputStream ...
- 二维码 生成工具类(文件转Base64字符串,Base64字符串转文件)
希望我的知识榨干了能帮到你解除困难,要是没有帮助你的,问度娘和知爹 一.POM.xml依赖下载 二.工具类提供 一.POM.xml依赖下载 <!-- 生成二维码依赖 --><depe ...
- java 替换文件中的字符串
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Prin ...
最新文章
- 第一次当领导,一定要知道的5个工具
- 简单的并发测试工具 ab.exe ab.zip可下载 -摘自网络
- 【数据结构与算法】之深入解析“两数相加II”的求解思路与算法示例
- 2019CCPC-江西省赛(重现赛)- 感谢南昌大学
- 前端学习(3160):react-hello-react之样式的模块化
- Nutanix企业云助力嘉里大通提升核心竞争力
- java为什么密码比字符串更喜欢char []?
- python1加到100总和_从1加到一百总和是多少?有什么公式吗?
- 文字处理技术:搞明白了表格是如何参与文字方向的
- windows环境下布置定时任务
- 特异度(specificity)与灵敏度(sensitivity)
- Matlab分析系统的动态性能
- OpenResty学习——第七章 Web开发实战2——商品详情页
- 基于Qt 5.7.0的适合Window XP系统的应用开发
- Nature Medicine 揭示冠状动脉疾病的个体危险因素
- 阿里云服务器优惠活动
- 基于android的宠物救助站app
- Axure 交互学习1 基础页面跳转、鼠标悬停样式
- 一别两宽,各生欢喜。
- 计算机单词正确的打开方式是怎样的?