クラスDigestInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.security.DigestInputStream
- すべての実装されたインタフェース:
Closeable, AutoCloseable
public class DigestInputStream extends FilterInputStream
ストリームを通過するビットを使用して、関連したメッセージ・ダイジェストを更新する透明なストリームです。
メッセージ・ダイジェストの計算を完了するには、このダイジェスト入力ストリームのreadメソッドの1つを呼び出したあと、関連したメッセージ・ダイジェストに対してdigestメソッドの1つを呼び出します。
このストリームをオンまたはオフにすることができます(onを参照)。 オンの場合、readメソッドの1つに対する呼出しは、メッセージ・ダイジェストを更新します。 ただし、オフの場合にはメッセージ・ダイジェストは更新されません。 ストリームに対するデフォルトはオンです。
ダイジェスト・オブジェクトは1つのダイジェスト (MessageDigestを参照してください)しかコンピュートできないので、中間ダイジェストをコンピュートするために、呼び出し元はダイジェスト・オブジェクトにハンドルを保持し、コンピュートされるダイジェストごとにそれをクローンし、元のダイジェストはそのままにします。
- 実装上のノート:
- この実装では、「オン」の場合に入力ストリームから実際に読み取られたデータのみでメッセージ・ダイジェストを更新します。 これには、様々な
readメソッドtransferTo、readAllBytesおよびreadNBytesが含まれます。skipメソッドでバイパスされたデータは無視されます。 一方、基礎となるストリームがmarkおよびresetメソッドをサポートし、同じデータがresetの後に再度読み取られると、メッセージ・ダイジェストが再度更新されます。 - 導入されたバージョン:
- 1.2
- 関連項目:
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタコンストラクタ説明DigestInputStream(InputStream stream, MessageDigest digest) 指定された入力ストリームとメッセージ・ダイジェストを使用して、ダイジェストを入力するストリームを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明このストリームに関連したメッセージ・ダイジェストを返します。voidon(boolean on) ダイジェスト機能をオンまたはオフにします。intread()1バイトを読み込み、メッセージ・ダイジェストを更新します(ダイジェスト機能がオンである場合)。intread(byte[] b, int off, int len) バイト配列に読み込み、メッセージ・ダイジェストを更新します(ダイジェスト機能がオンである場合)。voidsetMessageDigest(MessageDigest digest) 指定されたメッセージ・ダイジェストをこのストリームに関連付けます。toString()このダイジェスト入力ストリームとそれに関連したメッセージ・ダイジェスト・オブジェクトの文字列表現を出力します。クラスで宣言されたメソッド FilterInputStream
available, close, mark, markSupported, read, reset, skip修飾子と型メソッド説明intこの入力ストリームのメソッドの次の呼出し側によって、ブロックせずにこの入力ストリームから読み込むことができる(またはスキップできる)推定バイト数を返します。voidclose()この入力ストリームを閉じて、そのストリームに関連するすべてのシステム・リソースを解放します。voidmark(int readlimit) この入力ストリームの現在位置にマークを設定します。booleanこの入力ストリームがmarkおよびresetメソッドをサポートしているかどうかを判定します。intread(byte[] b) 最大b.lengthバイトのデータを、この入力ストリームからバイト配列に読み込みます。voidreset()このストリームを、この入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再配置します。longskip(long n) 入力ストリームからnバイトのデータをスキップして破棄します。クラスで宣言されたメソッド InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo修飾子と型メソッド説明static InputStreamバイトを読み取らない新しいInputStreamを返します。byte[]入力ストリームから残りのすべてのバイトを読み取ります。intreadNBytes(byte[] b, int off, int len) 入力ストリームからリクエストされたバイト数を、指定されたバイト配列に読み取ります。byte[]readNBytes(int len) 入力ストリームから指定のバイト数まで読み取ります。voidskipNBytes(long n) この入力ストリームからのデータのnバイトに正確にスキップし、破棄します。longtransferTo(OutputStream out) この入力ストリームからすべてのバイトを読み取り、指定された出力ストリームに読み込まれた順序でバイトを書き込みます。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
フィールド詳細
-
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 IOException1バイトを読み込み、メッセージ・ダイジェストを更新します(ダイジェスト機能がオンである場合)。 すなわち、このメソッドは入力ストリームから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
-