鴻蒙OS Base64.Decoder

2022-07-12 11:53 更新

Base64.Decoder

java.lang.Object

|---java.util.Base64.Decoder

public static class Base64.Decoder
extends Object

此類實(shí)現(xiàn)了一個(gè)解碼器,用于使用 RFC 4648 和 RFC 2045 中指定的 Base64 編碼方案來(lái)解碼字節(jié)數(shù)據(jù)。

Base64 填充字符 '=' 被接受并解釋為編碼字節(jié)數(shù)據(jù)的結(jié)尾,但不是必需的。 因此,如果編碼字節(jié)數(shù)據(jù)的最終單元只有兩個(gè)或三個(gè) Base64 字符(沒(méi)有填充相應(yīng)的填充字符),則它們將被解碼,就像后面跟著填充字符一樣。 如果最終單元中存在填充字符,則必須存在正確數(shù)量的填充字符,否則在解碼期間拋出 IllegalArgumentException(從 Base64 流中讀取時(shí)的 IOException)。

Decoder 類的實(shí)例可供多個(gè)并發(fā)線程安全使用。

除非另有說(shuō)明,否則將 null 參數(shù)傳遞給此類的方法將導(dǎo)致拋出 NullPointerException。

方法總結(jié)

修飾符和類型 方法 描述
byte[] decode(byte[] src) 使用 Base64 編碼方案解碼輸入字節(jié)數(shù)組中的所有字節(jié),將結(jié)果寫入新分配的輸出字節(jié)數(shù)組。
int decode(byte[] src, byte[] dst) 使用 Base64 編碼方案解碼輸入字節(jié)數(shù)組中的所有字節(jié),將結(jié)果寫入給定的輸出字節(jié)數(shù)組,從偏移量 0 開始。
byte[] decode(String src) 使用 Base64 編碼方案將 Base64 編碼的字符串解碼為新分配的字節(jié)數(shù)組。
ByteBuffer decode(ByteBuffer buffer) 使用 Base64 編碼方案對(duì)輸入字節(jié)緩沖區(qū)中的所有字節(jié)進(jìn)行解碼,并將結(jié)果寫入新分配的 ByteBuffer。
InputStream wrap(InputStream is) 返回用于解碼 Base64 編碼字節(jié)流的輸入流。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

方法詳情

decode

public byte[] decode(byte[] src)

使用 Base64 編碼方案解碼輸入字節(jié)數(shù)組中的所有字節(jié),將結(jié)果寫入新分配的輸出字節(jié)數(shù)組。 返回的字節(jié)數(shù)組是結(jié)果字節(jié)的長(zhǎng)度。

參數(shù):

參數(shù)名稱 參數(shù)描述
src 要解碼的字節(jié)數(shù)組

返回:

一個(gè)新分配的包含解碼字節(jié)的字節(jié)數(shù)組。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果 src 不在有效的 Base64 方案中

decode

public byte[] decode(String src)

使用 Base64 編碼方案將 Base64 編碼的字符串解碼為新分配的字節(jié)數(shù)組。

調(diào)用此方法與調(diào)用 decode(src.getBytes(StandardCharsets.ISO_8859_1)) 的效果完全相同

參數(shù):

參數(shù)名稱 參數(shù)描述
src 要解碼的字符串

返回:

一個(gè)新分配的包含解碼字節(jié)的字節(jié)數(shù)組。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果 src 不在有效的 Base64 方案中

decode

public int decode(byte[] src, byte[] dst)

使用 Base64 編碼方案解碼輸入字節(jié)數(shù)組中的所有字節(jié),將結(jié)果寫入給定的輸出字節(jié)數(shù)組,從偏移量 0 開始。

此方法的調(diào)用者有責(zé)任確保輸出字節(jié)數(shù)組 dst 有足夠的空間來(lái)解碼輸入字節(jié)數(shù)組中的所有字節(jié)。 如果輸出字節(jié)數(shù)組不夠大,則不會(huì)將任何字節(jié)寫入輸出字節(jié)數(shù)組。

如果輸入字節(jié)數(shù)組不是有效的 Base64 編碼方案,那么在拋出 IllegalargumentException 之前,一些字節(jié)可能已寫入輸出字節(jié)數(shù)組。

參數(shù):

參數(shù)名稱 參數(shù)描述
src 要解碼的字節(jié)數(shù)組
dst 輸出字節(jié)數(shù)組

返回:

寫入輸出字節(jié)數(shù)組的字節(jié)數(shù)

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果 src 不是有效的 Base64 方案,或者 dst 沒(méi)有足夠的空間來(lái)解碼所有輸入字節(jié)。

decode

public ByteBuffer decode(ByteBuffer buffer)

使用 Base64 編碼方案對(duì)輸入字節(jié)緩沖區(qū)中的所有字節(jié)進(jìn)行解碼,并將結(jié)果寫入新分配的 ByteBuffer。

返回后,源緩沖區(qū)的位置將更新到其限制; 它的限制不會(huì)改變。 返回的輸出緩沖區(qū)的位置將為零,其限制將是生成的解碼字節(jié)數(shù)

如果輸入緩沖區(qū)不是有效的 Base64 編碼方案,則會(huì)引發(fā) IllegalArgumentException。 在這種情況下,輸入緩沖區(qū)的位置不會(huì)被提前。

參數(shù):

參數(shù)名稱 參數(shù)描述
buffer 要解碼的 ByteBuffer

返回:

包含解碼字節(jié)的新分配字節(jié)緩沖區(qū)

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果 src 不在有效的 Base64 方案中。

wrap

public InputStream wrap(InputStream is)

返回用于解碼 Base64 編碼字節(jié)流的輸入流。

返回的 InputStream 的 read 方法在讀取無(wú)法解碼的字節(jié)時(shí)會(huì)拋出 IOException。

關(guān)閉返回的輸入流將關(guān)閉底層輸入流。

參數(shù):

參數(shù)名稱 參數(shù)描述
is 輸入流

返回:

用于解碼指定 Base64 編碼字節(jié)流的輸入流

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)