Module java.base
Package java.util

Class Base64.Decoder

java.lang.Object
java.util.Base64.Decoder
封装类:
Base64

public static class Base64.Decoder extends Object
该类实现了一个解码器,用于使用在RFC 4648和RFC 2045中指定的Base64编码方案对字节数据进行解码。

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

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

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

如果无法分配所需大小的解码后的字节输出,则此类的解码方法将导致抛出OutOfMemoryError

自版本:
1.8
参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    byte[]
    decode(byte[] src)
    使用Base64编码方案解码输入字节数组中的所有字节,将结果写入新分配的输出字节数组中。
    int
    decode(byte[] src, byte[] dst)
    使用Base64编码方案解码输入字节数组中的所有字节,将结果写入给定的输出字节数组中,从偏移量0开始。
    byte[]
    decode(String src)
    使用Base64编码方案将Base64编码的字符串解码为新分配的字节数组。
    decode(ByteBuffer buffer)
    使用Base64编码方案解码输入字节缓冲区中的所有字节,将结果写入新分配的ByteBuffer中。
    返回一个用于解码Base64编码的字节流的输入流。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • 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
      返回:
      包含解码字节的新分配ByteBuffer
      抛出:
      IllegalArgumentException - 如果buffer不符合有效的Base64方案
    • wrap

      public InputStream wrap(InputStream is)
      返回一个用于解码Base64编码的字节流的输入流。

      返回的InputStreamread方法在读取无法解码的字节时将抛出IOException

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

      参数:
      is - 输入流
      返回:
      用于解码指定的Base64编码字节流的输入流