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字符串
*
* @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)