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

2021/9/12 9:35:00

本文主要是介绍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.www.zyiz.net/i/ll/?i=img_convert/df2294537c6beddb45bc736fc7097e99.png)


这篇关于Java8新特性-Base64,别再说自己不会JVM虚拟机了的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程