一、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-tw/n/296222.html