微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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://www.icode9.com/i/ll/?i=img_convert/df2294537c6beddb45bc736fc7097e99.png)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐