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