モジュール java.base
パッケージ java.util

クラスBase64.Decoder

  • 含まれているクラス:
    Base64

    public static class Base64.Decoder
    extends Object
    このクラスは、RFC 4648およびRFC 2045に指定されているBase64エンコーディング・スキームを使用してバイト・データをデコードするためのデコーダを実装します。

    Base64のパディング文字'='はエンコードされたバイト・データの終わりとして受け入れられ、解釈されますが、必須ではありません。 そのため、エンコードされたバイト・データの最終単位にBase64の文字が2つまたは3つしか含まれていない(対応するパディング文字が追加されていない状態で)場合、それらはパディング文字がその後に続くかのようにデコードされます。 最終単位にパディング文字が含まれている場合は、正しい数のパディング文字が存在する必要があります。そうしないと、デコード中にIllegalArgumentException(Base64ストリームからの読取り時はIOException)がスローされます。

    Base64.Decoderクラスのインスタンスは、複数のスレッドで並行して使用できます。

    特に指定がないかぎり、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)
        Base64でエンコードされたバイト・ストリームをデコードするための入力ストリームを返します。

        返されたInputStreamreadメソッドは、デコードできないバイトの読取り時にIOExceptionをスローします。

        返された入力ストリームを閉じると、ベースとなる入力ストリームが閉じます。

        パラメータ:
        is - 入力ストリーム
        戻り値:
        指定されたBase64でエンコードされたバイト・ストリームをデコードするための入力ストリーム