一、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/zh-hant/n/296222.html
微信掃一掃
支付寶掃一掃