Module  java.base
软件包  java.util

Class Base64.Decoder

  • Enclosing class:
    Base64


    public static class Base64.Decoder
    extends Object
    该类使用RFC 4648和RFC 2045中规定的Base64编码方案来实现用于解码字节数据的解码器。

    Base64填充字符'='被接受并解释为编码字节数据的结尾,但不是必需的。 因此,如果编码字节数据的最终单位只有两个或三个Base64字符(没有相应的填充字符被填充),则它们被解码,就像后跟填充字符一样。 如果最终单位中存在填充字符,则必须存在正确数量的填充字符,否则在解码期间抛出IllegalArgumentException (从Base64流读取时为IOException )。

    Base64.Decoder类的实例可以安全使用多个并发线程。

    除非另有说明,否则将null参数传递给null的方法将导致抛出NullPointerException

    从以下版本开始:
    1.8
    另请参见:
    Base64.Encoder
    • 方法详细信息

      • decode

        public byte[] decode​(byte[] src)
        使用Base64编码方案从输入字节数组中解码所有字节,将结果写入新分配的输出字节数组。 返回的字节数组是生成字节的长度。
        参数
        src - 要解码的字节数组
        结果
        新分配的包含解码字节的字节数组。
        异常
        IllegalArgumentException - 如果 src不是有效的Base64方案
      • decode

        public byte[] decode​(String src)
        使用Base64编码方案将Base64编码的字符串解码为新分配的字节数组。

        调用此方法与调用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)
        返回用于解码Base64编码字节流的输入流。

        当读取不能解码的字节时,返回的InputStreamread方法将抛出IOException

        关闭返回的输入流将关闭底层输入流。

        参数
        is - 输入流
        结果
        用于解码指定的Base64编码字节流的输入流