Java8新特性-Base64,别再说自己不会JVM虚拟机了


Base64 编码字符串 (基本) :dGhpbmt3b24=

原始字符串: thinkwon 

[](

)UrlEncoder方式


@Test

public void testUrlEncoder() {

    String str = "thinkwon";

    // 使用基本编码

    String base64encodedString = Base64.getUrlEncoder().encodeToString(str.getBytes(StandardCharsets.UTF_8));

    System.out.println("Base64 编码字符串 (URL) :" + base64encodedString);



    // 解码

    byte[] base64decodedBytes = Base64.getUrlDecoder().decode(base64encodedString);

    System.out.println("原始字符串: " + new String(base64decodedBytes, StandardCharsets.UTF_8));

} 

输出结果


Base64 编码字符串 (URL) :dGhpbmt3b24=

原始字符串: thinkwon 

[](

)MimeEncoder方式


@Test

public void testMimeEncoder() {

    StringBuilder stringBuilder = new StringBuilder();

    for (int i = 0; i < 2; ++i) {

        stringBuilder.append(UUID.randomUUID().toString());

    }

    System.out.println("原始字符串: " + stringBuilder.toString());



    byte[] mimeBytes = stringBuilder.toString().getBytes(StandardCharsets.UTF_8);

    String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);

    System.out.println("Base64 编码字符串 (MIME) :");

    System.out.println(mimeEncodedString);



    byte[] decode = Base64.getMimeDecoder().decode(mimeEncodedString);

    System.out.println("解码字符串: " + new String(decode, StandardCharsets.UTF_8));

} 

输出结果


原始字符串: fb51e7aa-2303-4ffc-be8c-44de37b1417e783f2921-1a68-462e-a5e1-32d1ad6cc51a

Base64 编码字符串 (MIME) :

ZmI1MWU3YWEtMjMwMy00ZmZjLWJlOGMtNDRkZTM3YjE0MTdlNzgzZjI5MjEtMWE2OC00NjJlLWE1

ZTEtMzJkMWFkNmNjNTFh

解码字符串: fb51e7aa-2303-4ffc-be8c-44de37b1417e783f2921-1a68-462e-a5e1-32d1ad6cc51a 

[](

)对文件进行 Base64 编解码

[](

)文件与 Base64 字符串转换工具类


/**

 * 文件转化成base64字符串

 *

 * @param path 文件路径

 * @return String base64字符串

 */

public static String fileToBase64Str(String path) {

    InputStream in = null;

    byte[] data = null;

    try {

        in = new FileInputStream(new File(path));

        data = new byte[in.available()];

        in.read(data);

    } catch (Exception e) {

        e.printStackTrace();

    } finally {

        if (in != null) {

            try {

                in.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

    }

    // 对字节数组Base64编码

    return Base64.getMimeEncoder().encodeToString(data);

}



/**

 * 将base64字符串转换为文件并存储到指定位置

 *

 * @param base64Str base64字符串

 * @param filePath  文件路径

 * @return boolean true表示转换成功,false表示转换失败

 */

public static boolean base64StrToFile(String base64Str, String filePath) {

    if (base64Str == null && filePath == null) {

        return false;

    }

    try {

        Files.write(Paths.get(filePath), Base64.getMimeDecoder().decode(base64Str), StandardOpenOption.CREATE);

    } catch (IOException e) {

        e.printStackTrace();

    }

    return true;

} 

[](

)文件转 Base64 字符串


@Test

public void testFileToBase64() {

    String base64 = fileToBase64Str("C:\\Users\\JourWon\\Desktop\\优秀.jpg");

    System.out.println(base64);

} 

输出结果


/9j/4AAQSkZJRgABAQAAAQABAAD/4S/vRXhpZgAATU0AKgAAAAgABgESAAMAAAABAAEAAAEaAAUA后面还有很长的字符串... 

[](

)Base64 字符串转文件




> **Java网盘:pan.baidu.com/s/1MtPP4d9Xy3qb7zrF4N8Qpg
> 提取码:2p8n**



## 最后

这次要给大家分享总结的东西就是这些了

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化

ABAAEAAAEaAAUA后面还有很长的字符串... 

[](

)Base64 字符串转文件




> **Java网盘:pan.baidu.com/s/1MtPP4d9Xy3qb7zrF4N8Qpg
> 提取码:2p8n**



## 最后

这次要给大家分享总结的东西就是这些了

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化

![image](https://img-blog.csdnimg.cn/img_convert/df2294537c6beddb45bc736fc7097e99.png)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值