JavaTM 2
Platform
Std. Ed. v1.4.0

javax.crypto
クラス CipherInputStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--java.io.FilterInputStream
              |
              +--javax.crypto.CipherInputStream

public class CipherInputStream
extends FilterInputStream

CipherInputStream は InputStream と Cipher で構成されているので、read() メソッドは基本となる InputStream から読み込まれたデータを返しますが、Cipher により追加の処理が行われています。Cipher は、完全に初期化してからでないと、CipherInputStream で使用できません。

たとえば、Cipher が復号化用に初期化されていると、CipherInputStream は、復号化されたデータを返す前に、データを読み込んで復号化しようとします。

このクラスは、上位クラス java.io.FilterInputStream および java.io.InputStream のセマンティクス、特に失敗セマンティクスに厳密に従います。このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。さらに、このクラスは上位クラスでスローされないすべての例外をキャッチします。特に、skip メソッドはスキップを行い、available メソッドはカプセル化された Cipher により処理されたデータだけをカウントします。

このクラスを使用するプログラマは、このクラスで定義されていないメソッド、またはオーバーライドされていないメソッド (新しいメソッドや、あとでスーパークラスの 1 つに追加されるコンストラクタなど) を絶対に使用しないでください。それらのメソッドの設計と実装では、CipherInputStream に関するセキュリティ上の影響が考慮されていない可能性があるためです。

導入されたバージョン:
1.4
関連項目:
InputStream, FilterInputStream, Cipher, CipherOutputStream

フィールドの概要
 
クラス java.io.FilterInputStream から継承したフィールド
in
 
コンストラクタの概要
protected CipherInputStream(InputStream is)
          InputStream から Cipher を指定しないで CipherInputStream を構築します。
  CipherInputStream(InputStream is, Cipher c)
          InputStream および Cipher から CipherInputStream を構築します。
 
メソッドの概要
 int available()
          ブロックせずにこの入力ストリームから読み込めるバイト数を返します。
 void close()
          この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。
 boolean markSupported()
          この入力ストリームが、mark メソッドと reset メソッドをサポートしているかどうかを判定します。
 int read()
          この入力ストリームから、データの次のバイトを読み込みます。
 int read(byte[] b)
          最大 b.length バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。
 int read(byte[] b, int off, int len)
          この入力ストリームから len バイトまでのデータをバイトの配列に読み込みます。
 long skip(long n)
          ブロックせずにこの入力ストリームから読み込むことができるバイトから n バイトの入力をスキップします。
 
クラス java.io.FilterInputStream から継承したメソッド
mark, reset
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

CipherInputStream

public CipherInputStream(InputStream is,
                         Cipher c)
InputStream および Cipher から CipherInputStream を構築します。

パラメータ:
is - 処理される入力ストリーム
c - 初期化された Cipher オブジェクト

CipherInputStream

protected CipherInputStream(InputStream is)
InputStream から Cipher を指定しないで CipherInputStream を構築します。これは、NullCipher を使用して CipherInputStream を構築する効果を持ちます。

パラメータ:
is - 処理される入力ストリーム
メソッドの詳細

read

public int read()
         throws IOException
この入力ストリームから、データの次のバイトを読み込みます。そのバイトは、0255 の範囲の int として返されます。ストリームの終わりに達してバイトがない場合は、値 -1 が返されます。このメソッドは、入力データが読み込まれるようになるか、ストリームの終わりが検出されるか、または例外がスローされるまでブロックします。

オーバーライド:
クラス FilterInputStream 内の read
戻り値:
データの次のバイト。ストリームの終わりに達した場合は -1
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
FilterInputStream.in

read

public int read(byte[] b)
         throws IOException
最大 b.length バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。

InputStreamread メソッドは、引数 b0、および b.length を指定して 3 つの引数をとる read メソッドを呼び出します。

オーバーライド:
クラス FilterInputStream 内の read
パラメータ:
b - データの読み込み先のバッファ
戻り値:
バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
InputStream.read(byte[], int, int)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
この入力ストリームから len バイトまでのデータをバイトの配列に読み込みます。このメソッドは、一部の入力データが得られるようになるまでブロックします。最初の引数が null の場合は、len までのバイトが読み込まれたあと廃棄されます。

オーバーライド:
クラス FilterInputStream 内の read
パラメータ:
b - データの読み込み先のバッファ
off - データの開始オフセット
len - 読み込まれる最大バイト数
戻り値:
バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
InputStream.read()

skip

public long skip(long n)
          throws IOException
ブロックせずにこの入力ストリームから読み込むことができるバイトから n バイトの入力をスキップします。

スキップされるバイトが要求されたバイトより少ない場合があります。実際にスキップされたバイト数は、n または available を呼び出した結果のうち小さい方です。n がゼロより小さい場合、バイトはスキップされません。

実際にスキップされたバイト数が返されます。

オーバーライド:
クラス FilterInputStream 内の skip
パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップされたバイト数
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2

available

public int available()
              throws IOException
ブロックせずにこの入力ストリームから読み込めるバイト数を返します。InputStreamavailable メソッドは 0 を返します。このメソッドはサブクラスでオーバーライドする必要があります

オーバーライド:
クラス FilterInputStream 内の available
戻り値:
ブロックしないで入力ストリームから読み込むことができるバイト数
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
FilterInputStream.in

close

public void close()
           throws IOException
この入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。

CipherInputStreamclose メソッドが、基本となる入力ストリームの close メソッドを呼び出します。

オーバーライド:
クラス FilterInputStream 内の close
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
FilterInputStream.in

markSupported

public boolean markSupported()
この入力ストリームが、mark メソッドと reset メソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。

オーバーライド:
クラス FilterInputStream 内の markSupported
戻り値:
このクラスは mark メソッドと reset メソッドをサポートしていないので、false
導入されたバージョン:
JCE1.2
関連項目:
InputStream.mark(int), InputStream.reset()

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.