有几个项目中,都需要将图片或者数字证书的文件转为Base64,昨天写代码的时候,发现在jdk8中本就含有关于Base64的API。

从此后不再需要其他的jar包来转换Base64了!!!

据说是JDK8加入的。

先是将文件转为Base64:

 public String encryptToBase64(String filePath) {if (filePath == null) {return null;}try {byte[] b = Files.readAllBytes(Paths.get(filePath));return Base64.getEncoder().encodeToString(b);} catch (IOException e) {e.printStackTrace();}return null;}

Files、Paths类是JDK7里加入的,读取文件不再需要调用IO包里的FileInputStream,简单便捷。

字符串参数filePath是文件的路径。

首先是将文件读成二进制码,然后通过Base64.getEncoder().encodeToString()方法将二进制码转换为Base64值。

然后是将Base64转为文件:

 public String decryptByBase64(String base64, String filePath) {if (base64 == null && filePath == null) {return "生成文件失败,请给出相应的数据。";}try {Files.write(Paths.get(filePath), Base64.getDecoder().decode(base64),StandardOpenOption.CREATE);} catch (IOException e) {e.printStackTrace();}return "指定路径下生成文件成功!";}

字符串参数base64指的是文件的Base64值,filePath是指的文件将要保存的位置。

通过Files.write()方法轻松将文件写入指定位置,不再调用FileOutStream方法。

第三个参数StandardOpenOption.CREATE是处理文件的方式,我设置的是不管路径下有或没有,都创建这个文件,有则覆盖。

在StandardOpenOption类中有很多参数可调用,不再累赘。

Java8中文件转Base64和Base64转文件相关推荐

  1. java中pdf写成base64文件流,Java操作pdf文件与Base64编码相互转换与文件流操作

    1.第一步,引入bc包的安装依赖. 在pom.xml中引入. org.bouncycastle bcprov-jdk15on 1.60 引入后reimport一下项目. 2.pdf文件转换成Base6 ...

  2. 以Base64字符串形式上传文件——服务器端Java/Servlet接受请求数据中的字符串内容并转换成文件

    简述 在常规的web开发过程中,大部分上传文件都是在web页面端通过表单直接提交,再由服务器端捕获请求来进行处理的.但是在前后端分离趋于一种流行趋势,再加上Android和iOS开发技术日渐成熟,大部 ...

  3. java8中使用java.util.Base64报“java.lang.IllegalArgumentException: Illegal base64 character d”

    概述 Base64是一种字符串编码格式,采用了A-Z,a-z,0-9,"+"和"/"这64个字符来编码原始字符(还有垫字符"=").一个字符 ...

  4. java8新特性(7)— Base64

    java8新特性(7)- Base64 新增Base64工具类 package com.common.jdk8;import java.io.UnsupportedEncodingException; ...

  5. Base64方式上传文件

    文章目录 一.遇到的问题 二.将jar导入maven仓库 三.android客户端生成base64 四.Java接口base64转文件 一.遇到的问题 1.Java中直接使用spring框架提供的工具 ...

  6. linux中常用的加密总结--base64编码解码与openssl实现

    linux中常用的加密总结–base64编码解码与openssl实现 一.base64 !!!base64是一种数据编码方式,可逆,不是严格意义上的加密算法,不能作为安全加密使用 -d,–decode ...

  7. Css中路径data:image/png;base64的用法详解 (转载)

    大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: background-image:url(data:image/png;base64, iVBORw0KGg ...

  8. 通过文件url地址获取base64;通过图片url地址获取base64;js获取文件的base64

    本篇是通过url地址获取文件的base64 如果想要通过File文件获取base64查看这篇 以下代码可直接复制使用!注意第9行的图片地址更改下 <template><div cla ...

  9. 关于img标签中data:image/XXX;base64图片内容提取

    data类型URL图片类型 data:,<文本数据>data:text/plain,<文本数据>data:text/html,<HTML代码>data:text/h ...

最新文章

  1. 树的高度(小米2017秋招真题)
  2. ISCW实验:配置Cisco IOS EASY ××× Server和Cisco ××× Client
  3. Angularjs相关文章地址
  4. html里五角星怎么打,html怎么显示五角星 几分给几个五角星
  5. OpenLayers学习笔记5——使用jQuery UI实现查询并标注(UI篇)
  6. java 超时集合_Java之集合(二十三)SynchronousQueue
  7. 勇敢一次_开放网络需要勇敢的新英雄吗?
  8. 聊聊时间管理,不是多人运动那种
  9. MySQL 到底能不能放到 Docker 里跑?
  10. HTML5的新的结构元素介绍
  11. t检验自由度的意义_t检验的原理是什么?有什么意义?谢谢
  12. 出版物设计排版工具:Swift Publisher 5 for Mac
  13. CVPR2021 视频目标检测论文推荐
  14. STM32G070RBT6迷你开发板制作总结
  15. Python中os.sep的用法
  16. Vue实现Google登录
  17. 如何成为一个软件构架师
  18. Java - 关于HashMap通过keySet遍历kv的二次调用问题
  19. 做短视频剪辑的两种配音方法
  20. 在电脑上限制他人网速--需要同一个区域网

热门文章

  1. 路由追踪程序traceroute/tracert分析与科普
  2. 分享 | 运营必备11大数据分析模型,建议收藏
  3. Python项目打包部署Linux服务上
  4. Hadoop入门系列(二)idea配置hadoop开发环境
  5. 分手了还能做朋友吗?(2012年2月22日)
  6. 手机电池(锂电池包)认证要求
  7. Netty--菜鸟入门--Netty组件
  8. 打字游戏代码_下一个打字稿代码的5大专业技巧
  9. InnoDB 存储引擎介绍
  10. 22.0:Codejock Suite Pro for ActiveX COM:Crack