Base64.Decoder
java.lang.Object
|—java.util.Base64.Decoder
public static class Base64.Decoder
extends Object
此类实现了一个解码器,用于使用 RFC 4648 和 RFC 2045 中指定的 Base64 编码方案来解码字节数据。
Base64 填充字符 ‘=’ 被接受并解释为编码字节数据的结尾,但不是必需的。 因此,如果编码字节数据的最终单元只有两个或三个 Base64 字符(没有填充相应的填充字符),则它们将被解码,就像后面跟着填充字符一样。 如果最终单元中存在填充字符,则必须存在正确数量的填充字符,否则在解码期间抛出 IllegalArgumentException(从 Base64 流中读取时的 IOException)。
Decoder 类的实例可供多个并发线程安全使用。
除非另有说明,否则将 null 参数传递给此类的方法将导致抛出 NullPointerException。
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
byte[] | decode(byte[] src) | 使用 Base64 编码方案解码输入字节数组中的所有字节,将结果写入新分配的输出字节数组。 |
int | decode(byte[] src, byte[] dst) | 使用 Base64 编码方案解码输入字节数组中的所有字节,将结果写入给定的输出字节数组,从偏移量 0 开始。 |
byte[] | decode(String src) | 使用 Base64 编码方案将 Base64 编码的字符串解码为新分配的字节数组。 |
ByteBuffer | decode(ByteBuffer buffer) | 使用 Base64 编码方案对输入字节缓冲区中的所有字节进行解码,并将结果写入新分配的 ByteBuffer。 |
InputStream | wrap(InputStream is) | 返回用于解码 Base64 编码字节流的输入流。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法详情
decode
public byte[] decode(byte[] src)
使用 Base64 编码方案解码输入字节数组中的所有字节,将结果写入新分配的输出字节数组。 返回的字节数组是结果字节的长度。
参数:
参数名称 | 参数描述 |
---|---|
src | 要解码的字节数组 |
返回:
一个新分配的包含解码字节的字节数组。
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 src 不在有效的 Base64 方案中 |
decode
public byte[] decode(String src)
使用 Base64 编码方案将 Base64 编码的字符串解码为新分配的字节数组。
调用此方法与调用 decode(src.getBytes(StandardCharsets.ISO_8859_1)) 的效果完全相同
参数:
参数名称 | 参数描述 |
---|---|
src | 要解码的字符串 |
返回:
一个新分配的包含解码字节的字节数组。
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 src 不在有效的 Base64 方案中 |
decode
public int decode(byte[] src, byte[] dst)
使用 Base64 编码方案解码输入字节数组中的所有字节,将结果写入给定的输出字节数组,从偏移量 0 开始。
此方法的调用者有责任确保输出字节数组 dst 有足够的空间来解码输入字节数组中的所有字节。 如果输出字节数组不够大,则不会将任何字节写入输出字节数组。
如果输入字节数组不是有效的 Base64 编码方案,那么在抛出 IllegalargumentException 之前,一些字节可能已写入输出字节数组。
参数:
参数名称 | 参数描述 |
---|---|
src | 要解码的字节数组 |
dst | 输出字节数组 |
返回:
写入输出字节数组的字节数
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 src 不是有效的 Base64 方案,或者 dst 没有足够的空间来解码所有输入字节。 |
decode
public ByteBuffer decode(ByteBuffer buffer)
使用 Base64 编码方案对输入字节缓冲区中的所有字节进行解码,并将结果写入新分配的 ByteBuffer。
返回后,源缓冲区的位置将更新到其限制; 它的限制不会改变。 返回的输出缓冲区的位置将为零,其限制将是生成的解码字节数
如果输入缓冲区不是有效的 Base64 编码方案,则会引发 IllegalArgumentException。 在这种情况下,输入缓冲区的位置不会被提前。
参数:
参数名称 | 参数描述 |
---|---|
buffer | 要解码的 ByteBuffer |
返回:
包含解码字节的新分配字节缓冲区
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 src 不在有效的 Base64 方案中。 |
wrap
public InputStream wrap(InputStream is)
返回用于解码 Base64 编码字节流的输入流。
返回的 InputStream 的 read 方法在读取无法解码的字节时会抛出 IOException。
关闭返回的输入流将关闭底层输入流。
参数:
参数名称 | 参数描述 |
---|---|
is | 输入流 |
返回:
用于解码指定 Base64 编码字节流的输入流