Java中Base64的几种用法小结

 更新时间:2026年04月13日 08:58:27   作者:爱码少年 00fly.online  
文章简要介绍了Java中Base64编码和解码的常见应用场景,包括字符串、文件、本地图片和网络图片的编码解码,并介绍了Java8及以上版本内置的java.util.Base64工具类的使用方法,需要的朋友可以参考下

一、简要概述

在 Java 中使用 Base64 编码和解码非常常见,尤其是在处理网络传输、加密数据、图片处理等场景。Java 8 及以上版本提供了内置的 java.util.Base64 工具类,非常方便使用。

二、几种用法

1、字符串编码解码

 /**
     * URL安全编码
     */
    @Test
    public void test1()
    {
        String input = RandomStringUtils.randomAlphanumeric(50);
        String encoded = Base64.getUrlEncoder().encodeToString(input.getBytes());
        log.info("{} --> {}", input, encoded);
        
        // 解码
        byte[] decodeBytes = Base64.getUrlDecoder().decode(encoded);
        log.info(new String(decodeBytes));
    }

2、文件编码解码

 /**
     * 安全编码文件
     * 
     * @throws IOException
     */
    @Test
    public void testFile()
        throws IOException
    {
        byte[] fileBytes = Files.readAllBytes(Paths.get(new ClassPathResource("log4j2.xml").getURI()));
        String encoded = Base64.getUrlEncoder().encodeToString(fileBytes);
        log.info("Encoded file: {}", encoded);
        
        // 解码
        byte[] decodeBytes = Base64.getUrlDecoder().decode(encoded);
        log.info(new String(decodeBytes));
    }

3、本地图片编码解码

 /**
     * 安全编码图片
     * 
     * @throws IOException
     */
    @Test
    public void testPic()
        throws IOException
    {
        // Paths相对路径为当前项目
        byte[] fileBytes = Files.readAllBytes(Paths.get("src/main/resources/data/18.jpg"));
        String encoded = Base64.getUrlEncoder().encodeToString(fileBytes);
        log.info("Encoded file: {}", encoded);
        
        // 解码
        byte[] decodeBytes = Base64.getUrlDecoder().decode(encoded);
        Files.write(Paths.get("/001.jpg"), decodeBytes);
    }

4、网络图片编码解码

  /**
     * 安全编码图片
     * 
     * @throws IOException
     */
    @Test
    public void testNetPic()
        throws IOException
    {
        Resource resource = new UrlResource("https://i-blog.csdnimg.cn/direct/d4f0934d9ac041d583f81126fcc40f1d.png");
        try (InputStream is = resource.getInputStream())
        {
            // 编码解码网络图片
            String encoded = Base64.getUrlEncoder().encodeToString(IOUtils.toByteArray(is));
            byte[] decodeBytes = Base64.getUrlDecoder().decode(encoded);
            Files.write(Paths.get("/002.jpg"), decodeBytes);
        }
    }

到此这篇关于Java中Base64的几种用法小结的文章就介绍到这了,更多相关Java Base64用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot整合sentinel接口熔断的实现示例

    springboot整合sentinel接口熔断的实现示例

    为了防止慢接口导致的服务阻塞,可以通过添加熔断处理来避免应用的大量工作线程陷入阻塞,保证其他接口的正常运行,本文介绍了如何使用Spring Boot与Sentinel进行接口熔断的配置与实现,感兴趣的可以了解一下
    2024-09-09
  • JavaSE中compare、compareTo的区别

    JavaSE中compare、compareTo的区别

    本文主要介绍了JavaSE中compare、compareTo的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • java 读写锁的使用及它的优点

    java 读写锁的使用及它的优点

    这篇文章主要介绍了java 读写锁的使用及它的优点,读写锁的特点就是是读读不互斥、读写互斥、写写互斥,下面具体使用分享需要的小伙伴可以参考一下
    2022-05-05
  • 关于EntityWrapper的in用法

    关于EntityWrapper的in用法

    这篇文章主要介绍了关于EntityWrapper的in用法详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SSH框架实现表单上传图片实例代码

    SSH框架实现表单上传图片实例代码

    本篇文章主要介绍了SSH框架实现表单上传图片实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java内部类持有外部类导致内存泄露的原因与解决方案详解

    Java内部类持有外部类导致内存泄露的原因与解决方案详解

    这篇文章主要为大家详细介绍了Java因为内部类持有外部类导致内存泄露的原因以及其解决方案,文中的示例代码讲解详细,希望对大家有所帮助
    2022-11-11
  • SpringBoot中yml多环境配置的3种方法

    SpringBoot中yml多环境配置的3种方法

    这篇文章主要给大家介绍了SpringBoot中yml多环境配置的3种方法,文中有详细的代码示例供大家参考,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-10-10
  • OpenCV在Java中的完整集成指南分享

    OpenCV在Java中的完整集成指南分享

    本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用实例,并强调性能优化与安全措施,助力开发者高效实现计算机视觉功能
    2025-07-07
  • Java中的递归详解(用递归实现99乘法表来讲解)

    Java中的递归详解(用递归实现99乘法表来讲解)

    这篇文章主要介绍了Java中的递归详解(用递归实现99乘法表来讲解),本文给出了普通的99乘法实现方法和用递归实现的方法,并对比它们的不同,体现出递归的运用及理解,需要的朋友可以参考下
    2015-03-03
  • 解析电子邮件的基本概念及JavaMail API邮件功能使用

    解析电子邮件的基本概念及JavaMail API邮件功能使用

    这篇文章主要介绍了电子邮件的基本概念及JavaMail API邮件功能使用,包括用Java来发送邮件的示例,需要的朋友可以参考下
    2016-02-02

最新评论