public static class Base64.Decoder extends Object
Base64填充字符'='
被接受并被解释为编码字节数据的结尾,但不是必需的。 因此,如果编码字节数据的最终单位只有两个或三个Base64字符(没有相应的填充字符被填充),则它们被解码,就像后跟填充字符一样。 如果最终单位中存在填充字符,则必须存在正确的填充字符数,否则在解码期间抛出IllegalArgumentException
(从Base64流读取时为IOException
)。
实例Base64.Decoder
类是由多个并发线程安全使用。
除非另有说明,将null
参数传递给null
的方法将导致抛出NullPointerException
。
Base64.Encoder
Modifier and Type | Method and Description |
---|---|
byte[] |
decode(byte[] src)
使用 Base64 编码方案从输入字节数组中解码所有字节,将结果写入新分配的输出字节数组。
|
int |
decode(byte[] src, byte[] dst)
使用 Base64 编码方案从输入字节数组中解码所有字节,将结果写入给定的输出字节数组,从偏移0开始。
|
ByteBuffer |
decode(ByteBuffer buffer)
使用 Base64 编码方案从输入字节缓冲区中解码所有字节,将结果写入新分配的ByteBuffer。
|
byte[] |
decode(String src)
使用 Base64 编码方案将Base64编码的字符串解码为新分配的字节数组。
|
InputStream |
wrap(InputStream is)
返回一个输入流,用于解码 Base64 编码字节流。
|
public byte[] decode(byte[] src)
Base64
编码方案从输入字节数组中解码所有字节,将结果写入新分配的输出字节数组。
返回的字节数组是生成字节的长度。
src
- 要解码的字节数组
IllegalArgumentException
- 如果
src
不是有效的Base64方案
public byte[] decode(String src)
Base64
编码方案将Base64编码的字符串解码为新分配的字节数组。
调用此方法与调用decode(src.getBytes(StandardCharsets.ISO_8859_1))
效果decode(src.getBytes(StandardCharsets.ISO_8859_1))
src
- 要解码的字符串
IllegalArgumentException
- 如果
src
不是有效的Base64方案
public int decode(byte[] src, byte[] dst)
Base64
编码方案从输入字节数组中解码所有字节,将结果写入给定的输出字节数组,从偏移0开始。
这种方法的调用者有责任确保输出字节数组dst
具有足够的空间来解码输入字节数组中的所有字节。 如果输出字节数组不够大,则不会将字节写入输出字节数组。
如果输入字节数组不是有效的Base64编码方案,那么在抛出IllegalargumentException之前,可能会将一些字节写入输出字节数组。
src
- 要解码的字节数组
dst
- 输出字节数组
IllegalArgumentException
- 如果
src
不是有效的Base64方案,或
dst
没有足够的空间来解码所有的输入字节。
public ByteBuffer decode(ByteBuffer buffer)
Base64
编码方案从输入字节缓冲区中解码所有字节,将结果写入新分配的ByteBuffer。
返回时,源缓冲区的位置将更新为其限制; 其限制将不会改变。 返回的输出缓冲区的位置将为零,其限制将是生成的解码字节数
如果输入缓冲区不在有效的Base64编码方案中,则抛出IllegalArgumentException
。 在这种情况下,输入缓冲区的位置不会提前。
buffer
- ByteBuffer进行解码
IllegalArgumentException
- 如果
src
不是有效的Base64方案。
public InputStream wrap(InputStream is)
is
- 输入流