JavaTM 2
Platform
Std. Ed. v1.4.0

java.security
クラス DigestInputStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--java.io.FilterInputStream
              |
              +--java.security.DigestInputStream

public class DigestInputStream
extends FilterInputStream

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

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

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

ダイジェストオブジェクトは、ダイジェストを 1 つしか計算できないので (MessageDigest を参照)、中間的なダイジェストを計算するには、呼び出し側がそのダイジェストオブジェクトに対するハンドルを維持し、各計算対象のダイジェストに対して複製を生成し、元のダイジェストをそのままにしておく必要があることに注意してください。

関連項目:
MessageDigest, DigestOutputStream

フィールドの概要
protected  MessageDigest digest
          このストリームに関連したメッセージダイジェストです。
 
クラス java.io.FilterInputStream から継承したフィールド
in
 
コンストラクタの概要
DigestInputStream(InputStream stream, MessageDigest digest)
          指定された入力ストリームとメッセージダイジェストを使用して、ダイジェストを入力するストリームを作成します。
 
メソッドの概要
 MessageDigest getMessageDigest()
          このストリームに関連したメッセージダイジェストを返します。
 void on(boolean on)
          ダイジェスト機能をオンまたはオフにします。
 int read()
          1 バイトを読み込み、メッセージダイジェストを更新します (ダイジェスト機能がオンである場合)。
 int read(byte[] b, int off, int len)
          バイト配列に読み込み、メッセージダイジェストを更新します (ダイジェスト機能がオンである場合)。
 void setMessageDigest(MessageDigest digest)
          指定されたメッセージダイジェストをこのストリームに関連付けます。
 String toString()
          このダイジェスト入力ストリームとそれに関連したメッセージダイジェストオブジェクトの文字列表現を出力します。
 
クラス java.io.FilterInputStream から継承したメソッド
available, close, mark, markSupported, read, reset, skip
 
クラス 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(java.security.MessageDigest)

setMessageDigest

public void setMessageDigest(MessageDigest digest)
指定されたメッセージダイジェストをこのストリームに関連付けます。

パラメータ:
digest - このストリームに関連したメッセージダイジェスト
関連項目:
getMessageDigest()

read

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

オーバーライド:
クラス FilterInputStream 内の read
戻り値:
読み込まれるバイト
例外:
IOException - 入出力エラーが発生した場合
関連項目:
MessageDigest.update(byte)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
バイト配列に読み込み、メッセージダイジェストを更新します (ダイジェスト機能がオンである場合)。すなわち、このメソッドは、入力ストリームから配列 b の中に、オフセット off から開始して len バイトまで読み込みます。このメソッドは、データが実際に読み込まれるまで、次に読み込むのを停止します。ダイジェスト機能がオン (on を参照) の場合には、このメソッドは、そのストリームに関連したメッセージダイジェストに対して update を呼び出し、読み込んだデータを渡します。

オーバーライド:
クラス FilterInputStream 内の read
パラメータ:
b - データを中に読み込む配列
off - b の中にデータを配置する、配列の開始オフセット
len - オフセット off から開始して、入力ストリームから b の中に読み込むバイトの最大数
戻り値:
実際に読み込んだバイト数。len バイトを読み込む前にストリームの最後に到達した場合には、読み込んだバイト数は len より小さくなる。この呼び出しを行なった時点ですでにストリームの最後に到達しているため、1 バイトも読み込まれなかった場合には -1 が返される
例外:
IOException - 入出力エラーが発生した場合
関連項目:
MessageDigest.update(byte[], int, int)

on

public void on(boolean on)
ダイジェスト機能をオンまたはオフにします。デフォルトはオンです。オンの場合、read メソッドの 1 つに対する呼び出しは、メッセージダイジェストを更新します。ただし、オフの場合にはメッセージダイジェストは更新されません。

パラメータ:
on - ダイジェスト機能をオンにする場合は true、オフにする場合は false

toString

public String toString()
このダイジェスト入力ストリームとそれに関連したメッセージダイジェストオブジェクトの文字列表現を出力します。

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの文字列表現

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.