- java.lang.Object
-
- java.util.Base64.Decoder
-
- Enclosing class:
- Base64
public static class Base64.Decoderextends Object
该类实现了一个解码器,用于使用RFC 4648和RFC 2045中规定的Base64编码方案解码字节数据。Base64填充字符
'='
被接受并解释为编码字节数据的结尾,但不是必需的。 因此,如果编码字节数据的最后一个单元只有两个或三个Base64字符(没有相应的填充字符填充),则它们被解码,好像后面跟填充字符一样。 如果最终单元中存在填充字符,则必须存在正确数量的填充字符,否则在解码期间抛出IllegalArgumentException
(从Base64流读取时为IOException
)。Base64.Decoder
类的实例可供多个并发线程使用。除非另有说明,否则将
null
参数传递给null
的方法将导致抛出NullPointerException
。- 从以下版本开始:
- 1.8
- 另请参见:
-
Base64.Encoder
-
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 byte[]
decode(byte[] src)
使用Base64
编码方案解码输入字节数组中的所有字节,将结果写入新分配的输出字节数组。int
decode(byte[] src, byte[] dst)
使用Base64
编码方案解码输入字节数组中的所有字节,将结果写入给定的输出字节数组,从偏移量0开始。byte[]
decode(String src)
使用Base64
编码方案将Base64编码的String解码为新分配的字节数组。ByteBuffer
decode(ByteBuffer buffer)
使用Base64
编码方案解码输入字节缓冲区中的所有字节,将结果写入新分配的ByteBuffer。InputStream
wrap(InputStream is)
返回用于解码Base64
编码字节流的输入流。
-
-
-
方法详细信息
-
decode
public byte[] decode(byte[] src)
使用Base64
编码方案解码输入字节数组中的所有字节,将结果写入新分配的输出字节数组。 返回的字节数组是结果字节的长度。- 参数
-
src
- 要解码的字节数组 - 结果
- 包含解码字节的新分配字节数组。
- 异常
-
IllegalArgumentException
- 如果src
不在有效的Base64方案中
-
decode
public byte[] decode(String src)
使用Base64
编码方案将Base64编码的String解码为新分配的字节数组。调用此方法与调用
decode(src.getBytes(StandardCharsets.ISO_8859_1))
具有完全相同的效果- 参数
-
src
- 要解码的字符串 - 结果
- 包含解码字节的新分配字节数组。
- 异常
-
IllegalArgumentException
- 如果src
不在有效的Base64方案中
-
decode
public int decode(byte[] src, byte[] dst)
使用Base64
编码方案解码输入字节数组中的所有字节,将结果写入给定的输出字节数组,从偏移量0开始。该方法的调用者有责任确保输出字节数组
dst
具有足够的空间来解码来自输入字节数组的所有字节。 如果输出字节数组不够大,则不会将任何字节写入输出字节数组。如果输入字节数组不是有效的Base64编码方案,则在抛出IllegalargumentException之前,某些字节可能已写入输出字节数组。
- 参数
-
src
- 要解码的字节数组 -
dst
- 输出字节数组 - 结果
- 写入输出字节数组的字节数
- 异常
-
IllegalArgumentException
- 如果src
不在有效的Base64方案中,或dst
没有足够的空间来解码所有输入字节。
-
decode
public ByteBuffer decode(ByteBuffer buffer)
使用Base64
编码方案解码输入字节缓冲区中的所有字节,将结果写入新分配的ByteBuffer。返回时,源缓冲区的位置将更新为其限制; 它的限制不会改变。 返回的输出缓冲区的位置将为零,其限制将是生成的解码字节数
如果输入缓冲区不是有效的Base64编码方案,则抛出
IllegalArgumentException
。 在这种情况下,输入缓冲区的位置不会提前。- 参数
-
buffer
- 要解码的ByteBuffer - 结果
- 一个新分配的字节缓冲区,包含解码的字节
- 异常
-
IllegalArgumentException
- 如果src
不在有效的Base64方案中。
-
wrap
public InputStream wrap(InputStream is)
- 参数
-
is
- 输入流 - 结果
- 用于解码指定的Base64编码字节流的输入流
-
-