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

クラスBase64.Decoder

java.lang.Object
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がスローされます。

必要なサイズのデコードされたバイト出力が割り当てられない場合、このクラスのデコード・メソッドによってOutOfMemoryErrorがスローされます。

導入されたバージョン:
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エンコーディング方式を使用して入力byteバッファからすべてのバイトをデコードし、結果を新しく割り当てられた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 - デコードするバイト配列
      戻り値:
      デコードされたバイトを格納する、新しく割り当てられたバイト配列。
      例外:
      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エンコーディング方式を使用して入力byteバッファからすべてのバイトをデコードし、結果を新しく割り当てられたByteBufferに書き込みます。

      復帰時に、ソース・バッファの位置はそのリミットに更新されますが、リミットは変更されません。 返される出力バッファの位置はゼロになり、そのリミットは結果となるデコードされたバイトの数になります。

      入力バッファが有効なBase64エンコーディング・スキームになっていない場合は、IllegalArgumentExceptionがスローされます。 この場合、入力バッファの位置は進みません。

      パラメータ:
      buffer - デコードするByteBuffer
      戻り値:
      デコードされたバイトを格納する、新しく割り当てられたバイト・バッファ
      例外:
      IllegalArgumentException - bufferが有効なBase64スキーム内にない場合
    • wrap

      public InputStream wrap​(InputStream is)
      Base64でエンコードされたバイト・ストリームをデコードするための入力ストリームを返します。

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

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

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