• 首页
  • 邻居
  • 关于
  • 归档
  • 搜索
  • 夜间模式
    ©2020-2026  我的学习笔记 Theme by OneBlog

    我的学习笔记博客

    搜索
    标签
    # 随笔 # Java # 教程 # openwrt # Mysql # SQL # 爬虫 # post # Js调优 # MAVEN
  • 首页>
  • 随笔>
  • 正文
  • Java Base64转换,Java Base64工具类

    2023年04月04日 3.3 k 阅读 1 评论 1787 字

    Base64转换工具类:

    1、使用JDK6自带的(不建议使用)

        import sun.misc.BASE64Encoder;   
        import sun.misc.BASE64Decoder;  
        //编码  
        BASE64Encoder encoder = new BASE64Encoder();    
        String imageString = encoder.encode(byteArray);//转换成Base64形式  
          
        //解码  
        BASE64Decoder decoder = new BASE64Decoder();    
        byte[] imageByteArray = decoder.decodeBuffer(imageString);    

    但这个性能一般,而且转换出来的base64字符串会有换行符,可能还需要替换换行符,避免在某些场景因为分行导致出错
    2、使用Jdk8的Base64工具类(优先考虑使用)

        java.util.Base64  
          
        //编码  
        Base64.getEncoder().encodeToString("aaaaaaaa".getBytes("utf-8"));  
          
        //解码  
        Base64.getDecoder().decode("c29tZSBzdHJpbmc=");  
          
        //URL编码  
        //URL对反斜线“/”有特殊的意义,因此URL编码需要替换掉它,使用下划线替换  
        Base64.getUrlEncoder().encodeToString("test.do?abcd".getBytes("utf-8"));  
          
        //MIME编码  
        //每一行输出不超过76个字符,而且每行以“\r\n”符结束  
        Base64.getMimeEncoder().encodeToString("aaaaaaaa".getBytes("utf-8"));  
          
        //流文件编码、解码  
        Base64.getEncoder().wrap(outputStream);   
        Base64.getDecoder().wrap(inputStream);  

    性能超好,如果已经使用JDK8,直接使用这个。
    3、使用Spring提供的Base64Utils类

    org.springframework.util.Base64Utils;  

    4、使用apache中的Base64

    org.apache.commons.codec.binary.Base64  

    5、使用第三方工具类(附件有相应的jar包)

       net.iharder.Base64;  
         
       Base64.encodeBytes(bytes);  
         
       //直接从文件路径获取base64编码  
       Base64.encodeFromFile("c:/938dcfd836be4e15a225110dc77769d0.jpg");  

    文件转成字节

        File file = new File("c:/5110dc77769d0.jpg");  
        InputStream inputStream = new FileInputStream(file);  
        byte[] bytes = new byte[inputStream.available()];  
        inputStream.read(bytes);  
        inputStream.close();  
    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    读者留言1

    1. 小花 Lv.1
      2023-04-17 17:36 回复

      :hehe:

    加载更多评论
    加载中...
    — 已加载全部评论 —
    首页邻居关于归档
    Copyright©2020-2026  All Rights Reserved.  Load:0.023 s
    京ICP备18019712号
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。