java byte与base64的互转的实现示例

 更新时间:2024年02月20日 09:52:17   作者:Robert_Jen  
在项目开发中经常用到,比如前端上送文件流(byte[])到后台并转成文件,本文主要介绍了java byte与base64的互转的实现示例,具有一定的参考价值,感兴趣的可以了解一下

1、将byte数组转为Base64编码的字符串:byte转Base64

主要代码:String base64Str = Base64.getEncoder().encodeToString(bytes);

public static void main(String[] args) {
    // 要转换的byte数组
    byte[] bytes = "Hello World, 你好,世界".getBytes();
    // 数组长度
    System.out.println("byte数组长度:"+ bytes.length);
    // Base64编码后的字符串
    String base64Str = Base64.getEncoder().encodeToString(bytes);
    System.out.println("Base64编码后的字符串:" + base64Str);
}

输出结果:

byte数组长度:28
Base64编码后的字符串:SGVsbG8gV29ybGQsIOS9oOWlve+8jOS4lueVjA==

方式二:DatatypeConverter

import javax.xml.bind.DatatypeConverter;
    @Test
    public void test0() {
        byte[] byteArray = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
        // byte[]转base64
        String base64Str = DatatypeConverter.printBase64Binary(byteArray);
        // base64转byte[]
        byte[] byteArray2 = DatatypeConverter.parseBase64Binary(base64Str);
        System.out.println(byteArray2.toString());
    }

2、将Base64编码的字符串转为byte数组:Base64转byte

主要代码:byte[] decodedBytes = Base64.getDecoder().decode(base64Str);

public static void main(String[] args) {
     // Base64编码的字符串
     String base64Str = "SGVsbG8gV29ybGQsIOS9oOWlve+8jOS4lueVjA==";
     // 解码得到byte数组
     byte[] decodedBytes = Base64.getDecoder().decode(base64Str);
     String res = new String(decodedBytes, StandardCharsets.UTF_8);
     System.out.println("解码后的byte数组:" + res);
}

输出结果:

解码后的byte数组:Hello World, 你好,世界

到此这篇关于java byte与base64的互转的实现示例的文章就介绍到这了,更多相关java byte base64互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java读取文件的简单实现方法

    Java读取文件的简单实现方法

    这篇文章主要介绍了Java读取文件的简单实现方法,通过一个读取txt格式的log文件为例,详细的讲述了Java读取文件的方法及原理,需要的朋友可以参考下
    2014-09-09
  • 解决Mybatis 大数据量的批量insert问题

    解决Mybatis 大数据量的批量insert问题

    这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • log4j控制台不打印日志故障的详细解决方案

    log4j控制台不打印日志故障的详细解决方案

    这篇文章主要给大家介绍了关于log4j控制台不打印日志故障的详细解决方案,log4j不提供默认配置,因为在某些环境中可能禁止输出到控制台或文件系统,需要的朋友可以参考下
    2023-08-08
  • SpringBoot对Controller进行单元测试的实现代码 附乱码解决方案

    SpringBoot对Controller进行单元测试的实现代码 附乱码解决方案

    这篇文章主要介绍了SpringBoot对Controller进行单元测试的实现代码 附乱码解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Spring Cloud Alibaba微服务组件Sentinel实现熔断限流

    Spring Cloud Alibaba微服务组件Sentinel实现熔断限流

    这篇文章主要为大家介绍了Spring Cloud Alibaba微服务组件Sentinel实现熔断限流过程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • SpringBoot整合Activiti工作流框架的使用

    SpringBoot整合Activiti工作流框架的使用

    本文主要介绍了SpringBoot整合Activiti工作流框架的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Netty分布式源码分析监听读事件

    Netty分布式源码分析监听读事件

    这篇文章主要介绍了Netty分布式监听读事件方法的代码跟踪解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • Java ArrayList的基本概念和作用及动态数组的机制与性能

    Java ArrayList的基本概念和作用及动态数组的机制与性能

    在Java中,ArrayList是一个实现了List接口的动态数组,它可以根据需要自动增加大小,因此可以存储任意数量的元素,这篇文章主要介绍了探秘Java ArrayList的基本概念和作用及动态数组的机制与性能,需要的朋友可以参考下
    2023-12-12
  • Java项目中“zip END header not found“错误的解决方案

    Java项目中“zip END header not found“错误的解决方案

    在 Java 项目构建或运行过程中,开发者常会遇到 java.util.zip.ZipException: zip END header not found 错误,这一异常通常与 JAR 文件损坏、下载不完整、编码问题或 Maven 依赖管理配置不当有关,本文给大家介绍了Java项目中“zip END header not found“错误的解决方案
    2025-06-06
  • java多线程编程之为什么要进行数据同步

    java多线程编程之为什么要进行数据同步

    数据同步就是指在同一时间,只能由一个线程来访问被同步的类变量,当前线程访问完这些变量后,其他线程才能继续访问,下面看一下为什么要进行数据同步
    2014-01-01

最新评论