クラスDigestInputStream

すべての実装されたインタフェース:
Closeable, AutoCloseable

public class DigestInputStream extends FilterInputStream
ストリー を通過するビットを使用して、関連したメッセージ・ダイジェストを更新する透明なストリー です。

メッセージ・ダイジェストの計算を完了するには、このダイジェスト入力ストリー のreadメソッドの1つを呼び出したあと、関連したメッセージ・ダイジェストに対してdigestメソッドの1つを呼び出します。

このストリー をオンまたはオフにすることができます(onを参照)。 オンの 合、readメソッドの1つに対する呼出しは、メッセージ・ダイジェストを更新します。 た し、オフの 合にはメッセージ・ダイジェストは更新されません。 ストリー に対するデフォルトはオンです。

ダイジェスト・オブジェクトは1つのダイジェスト (MessageDigestを参照してく さい)しかコンピュートできないので、中間ダイジェストをコンピュートするために、呼び出し元はダイジェスト・オブジェクトにハンドルを保持し、コンピュートされるダイジェストごとにそれをクローンし、元のダイジェストはそのままにします。

実装上のノート:
この実装では、「オン」の 合に入力ストリー から実際に読み取られたデータのみでメッセージ・ダイジェストを更新します。 これには、様々なreadメソッドtransferToreadAllBytesおよびreadNBytesが含まれます。 skipメソッドでバイパスされたデータは無視されます。 一方、基礎となるストリー がmarkおよびresetメソッドをサポートし、同じデータがresetの後に再度読み取られると、メッセージ・ダイジェストが再度更新されます。
導入されたバージョン:
1.2
関連 目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected MessageDigest
    このストリー に関連したメッセージ・ダイジェストです。

    クラスjava.io.FilterInputStreamで宣言されたフィールド

    in
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    指定された入力ストリー とメッセージ・ダイジェストを使用して、ダイジェストを入力するストリー を作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このストリー に関連したメッセージ・ダイジェストを返します。
    void
    on(boolean on)
    ダイジェスト機能をオンまたはオフにします。
    int
    1バイトを読み込み、メッセージ・ダイジェストを更新します(ダイジェスト機能がオンである 合)。
    int
    read(byte[] b, int off, int len)
    バイト配列に読み込み、メッセージ・ダイジェストを更新します(ダイジェスト機能がオンである 合)。
    void
    指定されたメッセージ・ダイジェストをこのストリー に関連付けます。
    このダイジェスト入力ストリー とそれに関連したメッセージ・ダイジェスト・オブジェクトの文字列表現を出力します。

    クラスjava.io.FilterInputStreamで宣言されたメソッド

    available, close, mark, markSupported, read, reset, skip

    クラスjava.io.InputStreamで宣言されたメソッド

    nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • フィールド詳細

    • digest

      protected MessageDigest digest
      このストリー に関連したメッセージ・ダイジェストです。
  • コンストラクタの詳細

    • DigestInputStream

      public DigestInputStream(InputStream stream, MessageDigest digest)
      指定された入力ストリー とメッセージ・ダイジェストを使用して、ダイジェストを入力するストリー を作成します。
      パラメータ:
      stream - 入力ストリー 。
      digest - このストリー に関連させるメッセージ・ダイジェスト。
  • メソッドの詳細

    • getMessageDigest

      public MessageDigest getMessageDigest()
      このストリー に関連したメッセージ・ダイジェストを返します。
      戻り値:
      このストリー に関連したメッセージ・ダイジェスト。
      関連 目:
    • setMessageDigest

      public void setMessageDigest(MessageDigest digest)
      指定されたメッセージ・ダイジェストをこのストリー に関連付けます。
      パラメータ:
      digest - このストリー に関連したメッセージ・ダイジェスト。
      関連 目:
    • read

      public int read() throws IOException
      1バイトを読み込み、メッセージ・ダイジェストを更新します(ダイジェスト機能がオンである 合)。 すなわち、このメソッドは入力ストリー から1バイトを読み込み、実際にそのバイトの読込みが終了するまで次のデータの読込みを停止します。 ダイジェスト機能がオン(onを参照)の 合には、このメソッドは、そのストリー に関連したメッセージ・ダイジェストに対してupdateを呼び出し、読み込まれたバイトを渡します。
      オーバーライド:
      read、クラスFilterInputStream
      戻り値:
      読み込まれるバイト。
      スロー:
      IOException - 入出力エラーが発生した 合。
      関連 目:
    • read

      public int read(byte[] b, int off, int len) throws IOException
      バイト配列に読み込み、メッセージ・ダイジェストを更新します(ダイジェスト機能がオンである 合)。 すなわち、このメソッドは、入力ストリー から配列bの中に、オフセットoffから開始してlenバイトまで読み込みます。 このメソッドは、データが実際に読み込まれるまで、次に読み込むのを停止します。 ダイジェスト機能がオン(onを参照)の 合には、このメソッドは、そのストリー に関連したメッセージ・ダイジェストに対してupdateを呼び出し、読み込ん データを渡します。
      オーバーライド:
      read、クラスFilterInputStream
      パラメータ:
      b - データを中に読み込む配列。
      off - bの中にデータを配置する、配列の開始オフセット。
      len - オフセットoffから開始して、入力ストリー からbの中に読み込むバイトの最大数。
      戻り値:
      実際に読み込ん バイト数。 lenバイトを読み込む前にストリー の最後に到達した 合には、読み込ん バイト数はlenより小さくなる。この呼出しを行った時点ですでにストリー の最後に到達しているため、1バイトも読み込まれなかった 合には -1が返される。
      スロー:
      IOException - 入出力エラーが発生した 合。
      関連 目:
    • on

      public void on(boolean on)
      ダイジェスト機能をオンまたはオフにします。 デフォルトはオンです。 オンの 合、readメソッドの1つに対する呼出しは、メッセージ・ダイジェストを更新します。 た し、オフの 合にはメッセージ・ダイジェストは更新されません。
      パラメータ:
      on - ダイジェスト関数をオンにするにはtrue、オフにするにはfalse
    • toString

      public String toString()
      このダイジェスト入力ストリー とそれに関連したメッセージ・ダイジェスト・オブジェクトの文字列表現を出力します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このオブジェクトの文字列表現