一、Base64 字符串的概述
在计算机领域中,base64 是一种用64个字符来表示任意二进制数据的方法。因为一些系统只支持纯文本,如电子邮件等,但二进制数据又包括很多无法打印的字符,所以为了在这些系统中也能处理二进制数据,就将二进制数据转成了可打印的字符,这就是 Base64 编码。Base64 常用于在网络上传输文件,图片等二进制数据。
java.util.Base64 是 Java 8 提供的一个用于处理 Base64 的工具类,可以进行编码和解码操作。在 Java 中常用的有两种 Base64 编码方式:基本编码和 URL 编码。基本编码是最常用的一种,它用字符“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”来表示二进制数据。而 URL 编码是一种简化版的编码,具有适合放入 URL 和其他文本传输介质中的特点,其替换字符为“-”和“_”。
二、使用 java.util.Base64 进行 Base64 编码和解码操作
现在我们来看看如何使用 java.util.Base64 进行 Base64 编码和解码操作。下面是基本编码的示例代码:
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
// 编码操作
String s = "Base64 编码示例";
byte[] b = s.getBytes();
String encodedString = Base64.getEncoder().encodeToString(b);
System.out.println("Base64 编码:" + encodedString);
// 解码操作
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
System.out.println("Base64 解码:" + decodedString);
}
}
执行上面的代码,输出应该为:
Base64 编码:QmFzZTY0IOe8l+aWkumZp+WuieWFsOeahOWNoO+8pOWxiw== Base64 解码:Base64 编码示例
同样的,我们也可以使用 URL 编码进行编码操作。示例代码如下:
// URL 编码操作
String s = "Base64 编码示例";
byte[] b = s.getBytes();
String encodedString = Base64.getUrlEncoder().encodeToString(b);
System.out.println("URL 编码:" + encodedString);
执行上面的代码,输出应该为:
URL 编码:QmFzZTY0IOe8l-aWkumZp-WuieWFsOeahOWNoO-8pOWxiw==
三、Base64 编码在 Java Web 开发中的应用
在 Java Web 开发中,Base64 编码也非常常用。比如,在发送邮件时,需要将报表或图片等二进制数据转成 Base64 编码,并将其作为邮件的附件进行发送。Base64 编码在前端也非常常用,比如在前端上传图片时,一般需要将图片转成 Base64 编码,并将其放入数据中进行传输。
下面是一个将图片转成 Base64 编码的示例代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;
public class ImageToBase64Example {
public static void main(String[] args) throws IOException {
String imagePath = "C:/test.jpg";
File file = new File(imagePath);
InputStream inputStream = new FileInputStream(file);
byte[] bytes = new byte[(int)file.length()];
inputStream.read(bytes);
String encodedImage = Base64.getEncoder().encodeToString(bytes);
System.out.println("图片 Base64 编码:" + encodedImage);
}
}
执行上面的代码,输出应该为:
图片 Base64 编码:/9j/4AAQSkZJRgABAQEASABIAAD...
四、小结
Base64 是一种将二进制数据转成可打印的字符的编码方式,常用于网络数据传输等。在 Java 8 中,可以使用 java.util.Base64 进行 Base64 的编码和解码操作,支持基本编码和 URL 编码。在 Java Web 开发中,Base64 编码也非常常用,比如将二进制数据作为邮件附件发送,或者将图片转成 Base64 编码进行传输等。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/296222.html
微信扫一扫
支付宝扫一扫