Java实现文件和base64流的相互转换功能示例

 更新时间:2018年05月26日 11:11:07   作者:痕_影  
这篇文章主要介绍了Java实现文件和base64流的相互转换功能,涉及Java文件读取及base64 转换相关操作技巧,需要的朋友可以参考下

本文实例讲述了Java实现文件和base64流的相互转换功能。分享给大家供大家参考,具体如下:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
 * 文件与base64的互相转换操作
 */
public class testFile {
public static void main(String[] args) {
testFile t = new testFile();
try {
String ret = t.encodeBase64File("d://IE和火狐js或css差异.docx");
System.err.println(ret);
t.decoderBase64File(ret, "d://ghsTest/retFile.docx", "d://ghsTest/");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
   * 将文件转成base64 字符串
   *
   * @param path文件路径
   * @return *
   * @throws Exception
   */
  public static String encodeBase64File(String path) throws Exception {
    File file = new File(path);
    FileInputStream inputFile = new FileInputStream(file);
    byte[] buffer = new byte[(int) file.length()];
    inputFile.read(buffer);
    inputFile.close();
    return new BASE64Encoder().encode(buffer);
  }
  /**
   * 将base64字符解码保存文件
   *
   * @param base64Code
   * @param targetPath
   * @throws Exception
   */
  public static void decoderBase64File(String base64Code, String targetPath,String catalogue)
      throws Exception {
  File file = new File(catalogue);
  if(file.exists()==false){
  file.mkdirs();
  }
    byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);
    FileOutputStream out = new FileOutputStream(targetPath);
    out.write(buffer);
    out.close();
  }
}

PS:这里再推荐几款加密解密相关在线工具供大家参考使用:

线编码转换工具(utf-8/utf-32/Punycode/Base64):
http://tools.jb51.net/transcoding/decode_encode_tool

BASE64编码解码工具:
http://tools.jb51.net/transcoding/base64

图片转换为Base64编码在线工具:
http://tools.jb51.net/transcoding/img2base64

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

更多关于java相关内容感兴趣的读者可查看本站专题:《Java数学运算技巧总结》、《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • SpringCloud之服务注册与发现Spring Cloud Eureka实例代码

    SpringCloud之服务注册与发现Spring Cloud Eureka实例代码

    这篇文章主要介绍了SpringCloud之服务注册与发现Spring Cloud Eureka实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • java.util.Collection源码分析与深度理解

    java.util.Collection源码分析与深度理解

    这篇文章主要给大家介绍了关于java.util.Collection的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Java设计模式之代理模式详解

    Java设计模式之代理模式详解

    这篇文章主要介绍了Java设计模式之代理模式详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Feign远程调用参数里面内容丢失的解决方案

    Feign远程调用参数里面内容丢失的解决方案

    这篇文章主要介绍了Feign远程调用参数里面内容丢失的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java多线程wait()和notify()方法详细图解

    Java多线程wait()和notify()方法详细图解

    wait()和notify()是直接隶属于Object类,也就是说所有对象都拥有这一对方法,下面这篇文章主要给大家介绍了关于Java多线程wait()和notify()方法详细图解的相关资料,需要的朋友可以参考下
    2022-10-10
  • 详解Java中String类型与默认字符编码

    详解Java中String类型与默认字符编码

    这篇文章主要介绍了Java中String类型与默认字符编码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • GitLab+Jenkins+Maven+Tomcat 实现自动集成、打包、部署

    GitLab+Jenkins+Maven+Tomcat 实现自动集成、打包、部署

    本文主要介绍了GitLab + Jenkins + Maven + Tomcat 实现自动集成、打包、部署,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 一文搞懂JMeter engine中HashTree的配置问题

    一文搞懂JMeter engine中HashTree的配置问题

    本文主要介绍了JMeter engine中HashTree的配置,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 详解SpringBoot+SpringSecurity+jwt整合及初体验

    详解SpringBoot+SpringSecurity+jwt整合及初体验

    这篇文章主要介绍了详解SpringBoot+SpringSecurity+jwt整合及初体验,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Spring是怎么扩展解析xml接口的

    Spring是怎么扩展解析xml接口的

    这篇文章主要介绍了Spring是怎么扩展解析xml接口的,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论