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互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot整合Mybatis Plus多数据源的实现示例

    SpringBoot整合Mybatis Plus多数据源的实现示例

    本文主要介绍了SpringBoot整合Mybatis Plus多数据源的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Java实现mybatis批量插入数据到Oracle

    Java实现mybatis批量插入数据到Oracle

    这篇文章主要为大家详细介绍了Java实现mybatis批量插入数据到Oracle 的相关资料,需要的朋友可以参考下
    2016-06-06
  • 详解Java中数组判断元素存在几种方式比较

    详解Java中数组判断元素存在几种方式比较

    这篇文章主要介绍了Java中数组判断元素存在几种方式比较,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-07-07
  • Spring boot实现一个简单的ioc(1)

    Spring boot实现一个简单的ioc(1)

    这篇文章主要为大家详细介绍了Spring boot实现一个简单的ioc,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Springboot与vue实现数据导出方法具体介绍

    Springboot与vue实现数据导出方法具体介绍

    这篇文章主要介绍了Springboot与vue实现数据导出方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • IDEA 2020.1 搜索不到Chinese ​(Simplified)​ Language Pack EAP,无法安装的问题

    IDEA 2020.1 搜索不到Chinese ​(Simplified)​ Language

    小编在安装中文插件时遇到IDEA 2020.1 搜索不到Chinese ​(Simplified)​ Language Pack EAP,无法安装的问题,本文给大家分享我的解决方法,感兴趣的朋友一起看看吧
    2020-04-04
  • 关于SpringBoot简介、官网构建、快速启动的问题

    关于SpringBoot简介、官网构建、快速启动的问题

    SpringBoot 是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程,这篇文章主要介绍了SpringBoot简介、官网构建、快速启动,需要的朋友可以参考下
    2022-07-07
  • 浅谈java中定义泛型类和定义泛型方法的写法

    浅谈java中定义泛型类和定义泛型方法的写法

    下面小编就为大家带来一篇浅谈java中定义泛型类和定义泛型方法的写法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Java实题演练二叉搜索树与双向链表分析

    Java实题演练二叉搜索树与双向链表分析

    这篇文章主要介绍了Java二叉搜索树与双向链表,总的来说这并不是一道难题,那为什么要拿出这道题介绍?拿出这道题真正想要传达的是解题的思路,以及不断优化探寻最优解的过程。希望通过这道题能给你带来一种解题优化的思路
    2022-12-12
  • Nett中的心跳机制与断线重连详解

    Nett中的心跳机制与断线重连详解

    这篇文章主要介绍了Nett中的心跳机制与断线重连详解,我们以客户端发送心跳为例,平时我们的心跳实现方式可能是搞个定时器,定时发送是吧,但是在Netty中却不一样,心跳被称为空闲检测,需要的朋友可以参考下
    2023-12-12

最新评论