
Java 教程
- Java - 首頁
- Java - 概述
- Java - 歷史
- Java - 特性
- Java 與 C++
- JVM - Java虛擬機器
- Java - JDK 與 JRE 與 JVM
- Java - Hello World 程式
- Java - 環境搭建
- Java - 基本語法
- Java - 變數型別
- Java - 資料型別
- Java - 型別轉換
- Java - Unicode系統
- Java - 基本運算子
- Java - 註釋
- Java - 使用者輸入
- Java - 日期和時間
Java 控制語句
- Java - 迴圈控制
- Java - 決策制定
- Java - If-else
- Java - Switch
- Java - For迴圈
- Java - For-Each迴圈
- Java - While迴圈
- Java - do-while迴圈
- Java - Break
- Java - Continue
面向物件程式設計
- Java - OOPs概念
- Java - 物件和類
- Java - 類屬性
- Java - 類方法
- Java - 方法
- Java - 變數作用域
- Java - 建構函式
- Java - 訪問修飾符
- Java - 繼承
- Java - 聚合
- Java - 多型性
- Java - 重寫
- Java - 方法過載
- Java - 動態繫結
- Java - 靜態繫結
- Java - 例項初始化塊
- Java - 抽象
- Java - 封裝
- Java - 介面
- Java - 包
- Java - 內部類
- Java - 靜態類
- Java - 匿名類
- Java - 單例類
- Java - 包裝類
- Java - 列舉
- Java - 列舉建構函式
- Java - 列舉字串
Java 內建類
Java 檔案處理
Java 錯誤和異常
- Java - 異常
- Java - try-catch 塊
- Java - try-with-resources
- Java - 多重catch塊
- Java - 巢狀try塊
- Java - Finally塊
- Java - throw 異常
- Java - 異常傳播
- Java - 內建異常
- Java - 自定義異常
Java 多執行緒
- Java - 多執行緒
- Java - 執行緒生命週期
- Java - 建立執行緒
- Java - 啟動執行緒
- Java - 加入執行緒
- Java - 執行緒命名
- Java - 執行緒排程器
- Java - 執行緒池
- Java - 主執行緒
- Java - 執行緒優先順序
- Java - 守護執行緒
- Java - 執行緒組
- Java - 關閉鉤子
Java 同步
Java 網路程式設計
- Java - 網路程式設計
- Java - Socket程式設計
- Java - URL處理
- Java - URL類
- Java - URLConnection類
- Java - HttpURLConnection類
- Java - Socket類
- Java -泛型
Java 集合
Java 介面
Java 資料結構
Java 集合演算法
高階Java
- Java - 命令列引數
- Java - Lambda表示式
- Java - 傳送郵件
- Java - Applet基礎
- Java - Javadoc註釋
- Java - 自動裝箱和拆箱
- Java - 檔案不匹配方法
- Java - REPL (JShell)
- Java - 多版本Jar檔案
- Java - 私有介面方法
- Java - 內部類菱形運算子
- Java - 多解析度影像API
- Java - 集合工廠方法
- Java - 模組系統
- Java - Nashorn JavaScript
- Java - Optional類
- Java - 方法引用
- Java - 函式式介面
- Java - 預設方法
- Java - Base64編碼解碼
- Java - Switch表示式
- Java - Teeing收集器
- Java - 微基準測試
- Java - 文字塊
- Java - 動態CDS存檔
- Java - Z垃圾收集器(ZGC)
- Java - 空指標異常
- Java - 打包工具
- Java - 密封類
- Java - 記錄類
- Java - 隱藏類
- Java - 模式匹配
- Java - 簡潔數字格式化
- Java - 垃圾回收
- Java - JIT編譯器
Java 其他
- Java - 遞迴
- Java - 正則表示式
- Java - 序列化
- Java - 字串
- Java - Process API改進
- Java - Stream API改進
- Java - 增強的@Deprecated註解
- Java - CompletableFuture API改進
- Java - 流
- Java - 日期時間API
- Java 8 - 新特性
- Java 9 - 新特性
- Java 10 - 新特性
- Java 11 - 新特性
- Java 12 - 新特性
- Java 13 - 新特性
- Java 14 - 新特性
- Java 15 - 新特性
- Java 16 - 新特性
Java APIs和框架
Java 類引用
- Java - Scanner
- Java - 陣列
- Java - 字串
- Java - Date
- Java - ArrayList
- Java - Vector
- Java - Stack
- Java - PriorityQueue
- Java - LinkedList
- Java - ArrayDeque
- Java - HashMap
- Java - LinkedHashMap
- Java - WeakHashMap
- Java - EnumMap
- Java - TreeMap
- Java - IdentityHashMap
- Java - HashSet
- Java - EnumSet
- Java - LinkedHashSet
- Java - TreeSet
- Java - BitSet
- Java - Dictionary
- Java - Hashtable
- Java - Properties
- Java - Collection
- Java - Array
Java 有用資源
Java - Base64編碼和解碼
Java 8中引入了Base64實用程式類,該類具有內建的Base64編碼和解碼編碼器和解碼器。我們有三種類型的Base64編碼和解碼可用。以下是這些新增型別的簡要說明:
基本 - 輸出對映到A-Za-z0-9+/字元集。編碼器不會在輸出中新增任何換行符,解碼器會拒絕除A-Za-z0-9+/以外的任何字元。
URL - 輸出對映到A-Za-z0-9+_字元集。輸出對URL和檔名安全。
MIME - 輸出對映到MIME友好格式。輸出以每行不超過76個字元表示,並使用回車符'\r'後跟換行符'\n'作為行分隔符。編碼輸出的末尾沒有行分隔符。
基本Base64編碼和解碼
基本Base64編碼器對提供的字串進行編碼,不新增任何換行符。此編碼器使用A-Za-z0-9+/字元集中的字元。以下是解釋Base64編碼器用法的程式碼片段。
String stringToEncode = "TutorialsPoint?java8"; // Encode using basic encoder String base64encodedString = Base64.getEncoder().encodeToString(stringToEncode.getBytes("utf-8"));
簡單的Base64解碼器透過拒絕除A-Za-z0-9+/以外的任何字元來解碼Base64編碼的字串。以下是解釋Base64解碼器用法的程式碼片段。
// Decode the base64 encoded string using basic decoder byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); // print the decoded string System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
示例:Java中的基本Base64編碼和解碼
以下示例展示了Base64基本編碼器和解碼器的用法。我們首先使用Base64.getEncoder()獲取的編碼器對簡單的字串進行編碼,然後使用Base64.getDecoder()方法獲取的解碼器對返回的編碼字串進行解碼。
package com.tutorialspoint; import java.io.UnsupportedEncodingException; import java.util.Base64; public class Base64Tester { public static void main(String[] args) throws UnsupportedEncodingException { String stringToEncode = "TutorialsPoint?java"; // Encode using basic encoder String base64encodedString = Base64.getEncoder().encodeToString(stringToEncode.getBytes("utf-8")); System.out.println("Encoded String: " + base64encodedString); // Decode the base64 encoded string using basic decoder byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); // print the decoded string System.out.println("Decoded String: " + new String(base64decodedBytes, "utf-8")); } }
輸出
讓我們編譯並執行上面的程式,這將產生以下結果:
Encoded String: VHV0b3JpYWxzUG9pbnQ/amF2YQ== Decoded String: TutorialsPoint?java
用於URL的Base64編碼和解碼
URL Base64編碼器對提供的URL進行編碼,使其對URL和檔名安全。此編碼器使用A-Za-z0-9+/字元集中的字元。它使用URL和檔名安全型別的base64編碼方案進行編碼。以下是解釋URL Base64編碼器用法的程式碼片段。
String stringToEncode = "TutorialsPoint?java8"; // Encode using url encoder String base64encodedString = Base64.getUrlEncoder().encodeToString(stringToEncode.getBytes("utf-8"));
URL Base64解碼器透過拒絕除A-Za-z0-9+/以外的任何字元來解碼Base64編碼的字串。它使用URL和檔名安全型別的base64編碼方案進行解碼。以下是解釋Base64解碼器用法的程式碼片段。
// Decode the base64 encoded string using basic decoder byte[] base64decodedBytes = Base64.getUrlDecoder().decode(base64encodedString); // print the decoded string System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
示例:Java中用於URL的Base64編碼和解碼
以下示例展示了Base64 URL編碼器和解碼器的用法。我們首先使用Base64.getUrlEncoder()獲取的編碼器對簡單的字串進行編碼,然後使用Base64.getUrlDecoder()方法獲取的解碼器對返回的編碼字串進行解碼。
package com.tutorialspoint; import java.io.UnsupportedEncodingException; import java.util.Base64; public class Base64Tester { public static void main(String[] args) throws UnsupportedEncodingException { String stringToEncode = "TutorialsPoint?java"; // Encode using url encoder String base64encodedString = Base64.getUrlEncoder().encodeToString(stringToEncode.getBytes("utf-8")); System.out.println("Encoded String: " + base64encodedString); // Decode the base64 encoded string using url decoder byte[] base64decodedBytes = Base64.getUrlDecoder().decode(base64encodedString); // print the decoded string System.out.println("Decoded String: " + new String(base64decodedBytes, "utf-8")); } }
輸出
讓我們編譯並執行上面的程式,這將產生以下結果:
Encoded String: VHV0b3JpYWxzUG9pbnQ_amF2YQ== Decoded String: TutorialsPoint?java
用於MIME型別內容的Base64編碼和解碼
MIME Base64編碼器將提供的字串內容編碼為MIME友好格式。輸出以每行不超過76個字元表示,並使用回車符'\r'後跟換行符'\n'作為行分隔符。編碼輸出的末尾沒有行分隔符。以下是解釋MIME Base64編碼器用法的程式碼片段。
String stringToEncode = "TutorialsPoint?java8"; // Encode using mime encoder String base64encodedString = Base64.getMimeEncoder().encodeToString(stringToEncode.getBytes("utf-8"));
MIME Base64解碼器透過拒絕除A-Za-z0-9+/以外的任何字元來解碼Base64編碼的字串。它使用MIME型別的base64解碼方案進行解碼。以下是解釋Base64解碼器用法的程式碼片段。
// Decode the base64 encoded string using basic decoder byte[] base64decodedBytes = Base64.getMIMEDecoder().decode(base64encodedString); // print the decoded string System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
示例:Java中的MIME Base64編碼和解碼
以下示例展示了Base64 MIME編碼器和解碼器的用法。我們首先使用Base64.getMIMEEncoder()獲取的編碼器對簡單的字串進行編碼,然後使用Base64.getMIMEDecoder()方法獲取的解碼器對返回的編碼字串進行解碼。
package com.tutorialspoint; import java.io.UnsupportedEncodingException; import java.util.Base64; import java.util.UUID; public class Base64Tester { public static void main(String[] args) throws UnsupportedEncodingException { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < 10; ++i) { stringBuilder.append(UUID.randomUUID().toString()); stringBuilder.append(","); } byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8"); String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes); System.out.println("Base64 Encoded String (MIME) : " + mimeEncodedString); // Decode the base64 encoded string using url decoder byte[] base64decodedBytes = Base64.getMimeDecoder().decode(mimeEncodedString); // print the decoded string System.out.println("Decoded String: " + new String(base64decodedBytes, "utf-8")); } }
輸出
讓我們編譯並執行上面的程式,這將產生以下結果:
Base64 Encoded String (MIME) : NzRmNjkyODktYzJjZS00ZmU2LWEzYTUtMmFlMWRlMDQ1ZjU4LGQyNGQzMTU5LTVmOGUtNDZhMS04 NGRkLTBiMzNlNzc4ZjNiOCw2MmM1OTEzOS1kNmQwLTQ5MmQtYmUyMi01NmEzMTk5NmRkMTAsZDZh NjBlNzctZjRjZi00Y2Q4LTk5MWEtYTY2ZDEzMzU4YjFjLGFlNDhkZmZjLTEwZjctNDk5OS05NTFj LTU5ZGY1MjcyYjczNywxY2JiZjU0Ni0zNjc1LTQ4NzAtYTYxNC01MzkyODFkNjRjYmMsMTlhNTNi ODEtODQ0OS00M2MyLTg4NmMtNDhmZThmZDZmN2E1LDQyNmRhZDE0LTEyNjItNGJhZC1hMWJlLTNm ODc4MWE1YzhiMiw2NjEwMTgzZS03MGNkLTQzZTctOTRkNC0wZDgzZmY1MzhkNWYsOWMxNmMwM2Ut ZWZmZS00Zjg2LWFkYzgtNjc3MThjYTVlYjI2LA== Decoded String: 74f69289-c2ce-4fe6-a3a5-2ae1de045f58,d24d3159-5f8e-46a1-84dd-0b33e778f3b8,62c59139-d6d0-492d-be22-56a31996dd10,d6a60e77-f4cf-4cd8-991a-a66d13358b1c,ae48dffc-10f7-4999-951c-59df5272b737,1cbbf546-3675-4870-a614-539281d64cbc,19a53b81-8449-43c2-886c-48fe8fd6f7a5,426dad14-1262-4bad-a1be-3f8781a5c8b2,6610183e-70cd-43e7-94d4-0d83ff538d5f,9c16c03e-effe-4f86-adc8-67718ca5eb26,
Base64類的巢狀類
Base64類提供以下類。
序號 | 巢狀類和描述 |
---|---|
1 | static class Base64.Decoder 此類實現一個解碼器,用於根據RFC 4648和RFC 2045中指定的Base64編碼方案解碼位元組資料。 |
2 | static class Base64.Encoder 此類實現一個編碼器,用於根據RFC 4648和RFC 2045中指定的Base64編碼方案編碼位元組資料。 |
Base64類方法
以下是Base64類提供的用於輔助Base64編碼/解碼的方法。
序號 | 方法名稱和描述 |
---|---|
1 | static Base64.Decoder getDecoder() 返回一個使用基本型別base64編碼方案解碼的Base64.Decoder。 |
2 | static Base64.Encoder getEncoder() 返回一個使用基本型別base64編碼方案編碼的Base64.Encoder。 |
3 | static Base64.Decoder getMimeDecoder() 返回一個使用MIME型別base64解碼方案解碼的Base64.Decoder。 |
4 | static Base64.Encoder getMimeEncoder() 返回一個使用MIME型別base64編碼方案編碼的Base64.Encoder。 |
5 | static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) 返回一個使用指定行長和行分隔符的MIME型別base64編碼方案編碼的Base64.Encoder。 |
6 | static Base64.Decoder getUrlDecoder() 返回一個使用URL和檔名安全型別base64編碼方案解碼的Base64.Decoder。 |
7 | static Base64.Encoder getUrlEncoder() 返回一個使用URL和檔名安全型別base64編碼方案編碼的Base64.Encoder。 |
繼承的方法
此類繼承自以下類的方法:
- java.lang.Object