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程序设计有所帮助。

相关文章

  • 利用synchronized实现线程同步的案例讲解

    利用synchronized实现线程同步的案例讲解

    这篇文章主要介绍了利用synchronized实现线程同步的案例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java编写多功能万年历程序的实例分享

    Java编写多功能万年历程序的实例分享

    这里我们来作一个Java编写多功能万年历程序的实例分享,可以查询公元历、农历、节气与节日等,十分全面,下面就来具体看一下:
    2016-06-06
  • JAVA使用随机数实现概率抽奖

    JAVA使用随机数实现概率抽奖

    这篇文章主要为大家详细介绍了JAVA使用随机数实现概率抽奖,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • SpringBoot集成消息队列的项目实践

    SpringBoot集成消息队列的项目实践

    本文主要介绍了SpringBoot集成消息队列的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • Java微信授权登陆的实现示例

    Java微信授权登陆的实现示例

    微信授权登录,官方文档写的比较简洁。所以对于会的人一目了然,而对于新手刚入门的人来说是举步维艰。本文详细的介绍了Java微信授权登陆的实现示例,感兴趣的朋友可以了解一下
    2021-06-06
  • java编程队列数据结构代码示例

    java编程队列数据结构代码示例

    这篇文章主要介绍了java编程队列数据结构代码示例,简单介绍了队列的相关基础知识,然后通过实例向大家展示其实现方法,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 浅谈Java8的特性之Optional类

    浅谈Java8的特性之Optional类

    这篇文章主要介绍了浅谈Java8的特性之Optional类,Optional类是 Java 8 引入的一个很有趣的特性,Optional 类是一个可以为null的容器对象,它主要解决的问题是臭名昭著的空指针异常,需要的朋友可以参考下
    2023-08-08
  • 关于@RequestParam的主要用法详解

    关于@RequestParam的主要用法详解

    这篇文章主要介绍了关于@RequestParam的主要用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • 详解Java获取环境变量及系统属性的方法

    详解Java获取环境变量及系统属性的方法

    这篇文章主要介绍了详解Java获取环境变量及系统属性的方法,讲解了System.getEnv()和System.getProperties()这两个核心方法的使用,需要的朋友可以参考下
    2016-05-05
  • springboot整合mybatis实现多表查询的实战记录

    springboot整合mybatis实现多表查询的实战记录

    SpringBoot对数据库操作有多种方式,下面这篇文章主要给大家介绍了关于springboot整合mybatis实现多表查询的相关资料,文中通过示例代码以及图文介绍的非常详细,需要的朋友可以参考下
    2021-08-08

最新评论