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)