|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.io.InputStream | +--java.io.FilterInputStream | +--javax.crypto.CipherInputStream
CipherInputStream は InputStream と Cipher で構成されているので、read() メソッドは基本となる InputStream から読み込まれたデータを返しますが、Cipher により追加の処理が行われています。Cipher は、完全に初期化してからでないと、CipherInputStream で使用できません。
たとえば、Cipher が復号化用に初期化されていると、CipherInputStream は、復号化されたデータを返す前に、データを読み込んで復号化しようとします。
このクラスは、上位クラス java.io.FilterInputStream および java.io.InputStream のセマンティクス、特に失敗セマンティクスに厳密に従います。このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。さらに、このクラスは上位クラスでスローされないすべての例外をキャッチします。特に、skip
メソッドはスキップを行い、available
メソッドはカプセル化された Cipher により処理されたデータだけをカウントします。
このクラスを使用するプログラマは、このクラスで定義されていないメソッド、またはオーバーライドされていないメソッド (新しいメソッドや、あとでスーパークラスの 1 つに追加されるコンストラクタなど) を絶対に使用しないでください。それらのメソッドの設計と実装では、CipherInputStream に関するセキュリティ上の影響が考慮されていない可能性があるためです。
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 |
コンストラクタの詳細 |
public CipherInputStream(InputStream is, Cipher c)
is
- 処理される入力ストリームc
- 初期化された Cipher オブジェクトprotected CipherInputStream(InputStream is)
is
- 処理される入力ストリームメソッドの詳細 |
public int read() throws IOException
0
〜 255
の範囲の int
として返されます。ストリームの終わりに達してバイトがない場合は、値 -1
が返されます。このメソッドは、入力データが読み込まれるようになるか、ストリームの終わりが検出されるか、または例外がスローされるまでブロックします。
FilterInputStream
内の read
-1
IOException
- 入出力エラーが発生した場合FilterInputStream.in
public int read(byte[] b) throws IOException
b.length
バイトまでのデータを、この入力ストリームからバイト配列に読み込みます。
InputStream
の read
メソッドは、引数 b
、0
、および b.length
を指定して 3 つの引数をとる read
メソッドを呼び出します。
FilterInputStream
内の read
b
- データの読み込み先のバッファ
-1
IOException
- 入出力エラーが発生した場合InputStream.read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
len
バイトまでのデータをバイトの配列に読み込みます。このメソッドは、一部の入力データが得られるようになるまでブロックします。最初の引数が null
の場合は、len
までのバイトが読み込まれたあと廃棄されます。
FilterInputStream
内の read
b
- データの読み込み先のバッファoff
- データの開始オフセットlen
- 読み込まれる最大バイト数
-1
IOException
- 入出力エラーが発生した場合InputStream.read()
public long skip(long n) throws IOException
n
バイトの入力をスキップします。
スキップされるバイトが要求されたバイトより少ない場合があります。実際にスキップされたバイト数は、n
または
を呼び出した結果のうち小さい方です。available
n
がゼロより小さい場合、バイトはスキップされません。
実際にスキップされたバイト数が返されます。
FilterInputStream
内の skip
n
- スキップするバイト数
IOException
- 入出力エラーが発生した場合public int available() throws IOException
InputStream
の available
メソッドは 0
を返します。このメソッドはサブクラスでオーバーライドする必要があります。
FilterInputStream
内の available
IOException
- 入出力エラーが発生した場合FilterInputStream.in
public void close() throws IOException
CipherInputStream
の close
メソッドが、基本となる入力ストリームの close
メソッドを呼び出します。
FilterInputStream
内の close
IOException
- 入出力エラーが発生した場合FilterInputStream.in
public boolean markSupported()
mark
メソッドと reset
メソッドをサポートしているかどうかを判定します。これらのメソッドはサポートされていません。
FilterInputStream
内の markSupported
mark
メソッドと reset
メソッドをサポートしていないので、false
InputStream.mark(int)
,
InputStream.reset()
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.