目录

1.导入依赖

2、视频转Base64

2.1 视频转Base64输出txt文本

2.2 Base64转视频

3、图片转Base64

3.1 图片转Base64

3.2 Base64转图片


1.导入依赖

使用到工具类依赖

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version>
</dependency>

2、视频转Base64

2.1 视频转Base64输出txt文本

通过FileUtils.openInputStream()将视频文件转化成输入流。
然后通过IOUtils.toByteArray()直接将流经过Base64编码为String。最后通过FileWriter直接将String写入即可。

 @Testpublic void test() throws IOException {String sourceVideo = "/Users/LiuShihao/IdeaProjects/as-video-call-bussiness/as-video-business/src/main/resources/static/5.3gp" ;InputStream inputStream =  FileUtils.openInputStream(new File(sourceVideo));// encodeString ss = new String(Base64.getEncoder().encode(IOUtils.toByteArray(inputStream)), Charsets.ISO_8859_1);File txtFilePath = new File("/Users/LiuShihao/IdeaProjects/as-video-call-bussiness/as-video-business/src/main/resources/static/5.3.txt");FileWriter fileWriter = new FileWriter(txtFilePath);fileWriter.write(ss);fileWriter.flush();fileWriter.close();}

2.2 Base64转视频

使用BufferReader直接读取txt信息。一行行的读取到一个StringBuffer中,转成String,在经过Base64解码。最后通过字节流写成一个新的mp4文件。

 @Testpublic void test2() throws IOException {File txtFilePath = new File("/Users/LiuShihao/IdeaProjects/as-video-call-bussiness/as-video-business/src/main/resources/static/1.3.txt");BufferedReader bufferedReader = new BufferedReader(new FileReader(txtFilePath));StringBuffer sbf = new StringBuffer();String tempStr;while ((tempStr = bufferedReader.readLine()) != null) {sbf.append(tempStr);}bufferedReader.close();String ss = sbf.toString();InputStream is   =   new ByteArrayInputStream(Base64.getDecoder().decode(ss.getBytes(Charsets.ISO_8859_1)));FileOutputStream fos = new FileOutputStream(new File("/Users/LiuShihao/IdeaProjects/as-video-call-bussiness/as-video-business/src/main/resources/static/1.3gp_copy.mp4"));byte[] bytes = new byte[is.available()];System.out.println(bytes.length);int x = -1;while((x = is.read(bytes)) != -1) {fos.write(bytes);}is.close();fos.close();}

3、图片转Base64

3.1 图片转Base64

 //获取图片InputStream inputStream = null;//url是图片路径inputStream = FileUtils.openInputStream(new File(url));String base64 = null;base64 = new String(Base64.getEncoder().encode(IOUtils.toByteArray(inputStream)), Charsets.UTF_8);

3.2 Base64转图片

public ResponseData base64ToImage(@RequestBody  Map<String,String> map ){ResponseData<Object> data = ResponseData.defaultSuccess();try {String base64 = map.get("base64");ByteArrayInputStream in = new ByteArrayInputStream(Base64.getDecoder().decode(base64.getBytes(Charsets.UTF_8)));File file = new File("/Users/LiuShihao/IdeaProjects/besttone-call-business/1.jpeg");FileOutputStream fos = new FileOutputStream(file);byte[] bytes = new byte[in.available()];int x = -1;while((x = in.read(bytes)) != -1) {fos.write(bytes);}in.close();fos.close();data.setData("SUCCESS");}catch (Exception e){data = ResponseData.defaultFail();data.setMessage(e.getMessage());}return data;}

Java 视频文件、图片文件互转Base64编码(springboot)相关推荐

  1. Python 图片数据MYSQL存取(BASE64编码解码)

    Python 图片数据MYSQL存取(BASE64编码解码) 1.相关python代码 #-*- coding:utf-8 -*-import pymysql import sys import ba ...

  2. 自学Java语言网络编程局域网内与电脑无线传输视频,图片文件,调用系统媒体播放视频图片文件

    先看看电脑上的效果,可以查看磁盘下的文件,可以用鼠标双击MP4,MP3文件会调用系统播放器进行播放,电脑与手机同局域网内无线互传jpg图片与MP4视频文件,其他文件此代码不支持.下面有安卓上的逻辑代码 ...

  3. 图片文件,图片文件流和BASE64加密字符串之间的转换,以及图片的BASE64加密字符串再jsp上如何显示

    *本事例主要讲了如下几点:  * 1:将图片转换为BASE64加密字符串.  * 2:将图片流转换为BASE64加密字符串.  * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引 ...

  4. 一种简便的ios图片加密方法-对图片进行base64编码

    最近项目中需要对图片的安全做处理,保证用户(即使是越狱用户)也不能查看到从服务器中下载下来的图片. 折腾了多种方法,发现还是使用base64对储存的文件进行一次编码最方便,编码之后,用户打开图片时将显 ...

  5. java上传图片特征码到服务器,记一个Base64编码后经网络传输产生的问题

    问题:机器特征码经过网络传输之后,'+'都变成了' ' 详情:机器特征码提取了机器cpuId和mac地址信息,最后经过Base64编码后生成的字符串,一开始我使用的是 String strs = ne ...

  6. Minio(储桶bucket)上传和下载文件【Java】(图片转流、base64)

    此处先将图片下载到本地,再进行转换 MinIO是一个对象存储服务,非常轻量 Java Api 依赖: <dependency><groupId>io.minio</gro ...

  7. java怎么将图片文件转流并在jsp前端显示_jsp已经被淘汰了吗?

    以前的项目大多数都是java程序猿又当爹又当妈,又搞前端(ajax/jquery/js/html/css等等),又搞后端(java/mysql/Oracle等等). 随着时代的发展,渐渐的许多大中小公 ...

  8. java怎么将图片文件转流并在jsp前端显示_web前端—面试题汇总(001-005)

    每天坚持更新五道web前端开发面试题:点点关注,才会不迷路哦~~~~~ 001.WEB应用中如果有.class和.jar类型的文件一般分别应该放在什么位置? 答:.class文件放在WEB-INF/c ...

  9. java 视频截取图片 linux,在Windows和Linux下用JAVA调用FFMPEG 3.x进行视频截图的最新范例...

    ffmpeg3.x版本,相对2.x版本,在接口上,作了较大的改动.原来的程序可能就不能正常编译.运行了.网上不少范例程序,所以也就不能用了.java 下面的例子,是本人在原ffmpeg2.X例子基础上 ...

最新文章

  1. Linux之终端命令格式的组成
  2. jquery上传图片_文件上传三种方式
  3. ospf lesson 3
  4. @程序员们,公司 2 年不涨薪我究竟该怎么办?
  5. 《Greenplum5.0 最佳实践》 迁移数据使用Gptransfer
  6. Flex请求Php端的奇怪现象
  7. 【MATLAB】代码分享:matlab将word文档转为pdf输出
  8. ie11安装程序无法继续 因为你的计算机,win7安装不了ie11怎么回事 win7安装不了ie11的解决方案...
  9. 【软件工程】——软工视频总结
  10. python控制雷电模拟器
  11. 使用android新特性:Material Design
  12. 企业为什么要选择人力外包?好处与坏处
  13. android8 三星a9,三星GalaxyA9评测 已经远远超出中端手机的水平
  14. mybatis源码(一)
  15. 获奖喜讯 | 中恒科技连获第十一届“龙图杯”全国BIM大赛三项大奖
  16. win10打开网路邻居计算机,win10系统下网上邻居不能访问其他电脑的解决方法
  17. JavaSE-IO流
  18. 《操作系统真象还原》第十五章 ---- 实现系统交互 操作系统最终章 四十五天的不易与坚持终完结撒花 (下)(遗憾告终)
  19. 落单的数IV --- lintcode 824
  20. 【人工智能 AI 2.0】李开复:我亲自筹组 Project AI 2.0 不仅仅要做中文版ChatGPT

热门文章

  1. 【思维导图】运筹学和博弈论的关系
  2. 咖啡馆加盟品牌哪个好?咖啡馆加盟推荐
  3. STK1AW32SC安装linux,英特尔® 电脑棒支持的操作系统
  4. 高速目标距离走动校正 keystone 插值算法
  5. linux 打印相关备忘
  6. 04-Installer安装器
  7. Mac office word等办公软件如何关闭endntoe grammarly Acrobat等插件 以及解决word卡顿问题
  8. java画图缩小就没有了_Java窗体重绘:解决改变窗体后图形消失问题
  9. 为什么没有(不流行)中文的编程语言之我见
  10. Python中类的介绍及使用