Like Share Discussion Bookmark Smile

J.J. Huang   2020-04-11   Java   瀏覽次數:

Java 8 | Base64

Java 8中,Base64編碼已經成為Java類庫的標準。
Java 8內置了Base64編碼的編碼器和解碼器。
Base64工具類提供了一套靜態方法獲取下面三種Base64編解碼器​​:

  • 基本:輸出被映射到一組字符A-Za-z0-9+/,編碼不添加任何行標,輸出的解碼僅支持A-Za-z0-9+/
  • URL:輸出映射到一組字符A-Za-z0-9+_,輸出是URL和文件。
  • MIME:輸出隱射到MIME友好格式。輸出每行不超過76字符,並且使用'\r'並跟隨'\n'作為分割。編碼輸出最後沒有行分割。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.javacodegeeks.java8.base64;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64s {
public static void main(String[] args) {
final String text = "Base64 finally in Java 8!";

final String encoded = Base64
.getEncoder()
.encodeToString( text.getBytes( StandardCharsets.UTF_8 ) );
System.out.println( encoded );

final String decoded = new String(
Base64.getDecoder().decode( encoded ),
StandardCharsets.UTF_8 );
System.out.println( decoded );
}
}

輸出的結果為:

1
2
QmFzZTY0IGZpbmFsbHkgaW4gSmF2YSA4IQ==
Base64 finally in Java 8!

新的Base64API也支持URLMINE的編碼解碼。

1
(Base64.getUrlEncoder()** / Base64.getUrlDecoder(), Base64.getMimeEncoder() / Base64.getMimeDecoder()**)。

註:以上參考了
Stream 與平行化
Java 8 Lambda新語法,簡化程式,增強效能
Java 8 新特性
Java 8的新特性—终极版
现代化 Java - Java8 指南