- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- javax.crypto.CipherOutputStream
-
- すべての実装されたインタフェース:
Closeable
,Flushable
,AutoCloseable
public class CipherOutputStream extends FilterOutputStream
CipherOutputStreamはOutputStreamとCipherで構成されているので、write()メソッドはまずデータを処理してから基本となるOutputStreamに書き込みます。 Cipherは、完全に初期化してからでないと、CipherOutputStreamで使用できません。たとえば、Cipherが暗号化用に初期化されていると、CipherOutputStreamは、暗号化されたデータを書き込む前に、データを暗号化しようとします。
このクラスは、上位クラスjava.io.OutputStreamおよびjava.io.FilterOutputStreamのセマンティックス、特に失敗セマンティックスに厳密に従います。 このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。 さらに、このクラスは、上位クラスがスローしない例外をすべてキャッチします。
このクラスを使用するプログラマは、このクラスで定義されていないメソッド、またはオーバーライドされていないメソッド(あとでスーパー・クラスのいずれかに追加された新しいメソッドやコンストラクタなど)を絶対に使用しないでください。それらのメソッドの設計と実装では、CipherOutputStreamに関するセキュリティ上の影響が考慮されていない可能性があるためです。
- 導入されたバージョン:
- 1.4
- 関連項目:
OutputStream
,FilterOutputStream
,Cipher
,CipherInputStream
-
-
フィールドのサマリー
-
クラス java.io.FilterOutputStreamから継承されたフィールド
out
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
CipherOutputStream(OutputStream os)
OutputStreamからCipherを指定しないでCipherOutputStreamを構築します。CipherOutputStream(OutputStream os, Cipher c)
OutputStreamおよびCipherからCipherOutputStreamを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 void
close()
出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。void
flush()
カプセル化された暗号オブジェクトによってすでに処理された、バッファに格納された出力バイトを強制的に書き出して、この出力ストリームをフラッシュします。void
write(byte[] b)
指定されたバイト配列のb.length
バイトをこの出力ストリームに書き込みます。void
write(byte[] b, int off, int len)
指定されたバイト配列のオフセット位置off
から始まるlen
バイトをこの出力ストリームに書き込みます。void
write(int b)
指定されたバイトをこの出力ストリームに書き込みます。
-
-
-
コンストラクタの詳細
-
CipherOutputStream
public CipherOutputStream(OutputStream os, Cipher c)
OutputStreamおよびCipherからCipherOutputStreamを構築します。
注: 指定された出力ストリームまたは暗号がnullの場合は、それらの使用時にNullPointerExceptionがスローされる可能性があります。- パラメータ:
os
- OutputStreamオブジェクトc
- 初期化されたCipherオブジェクト
-
CipherOutputStream
protected CipherOutputStream(OutputStream os)
OutputStreamからCipherを指定しないでCipherOutputStreamを構築します。 これは、NullCipherを使用してCipherOutputStreamを構築する効果を持ちます。
注: 指定された出力ストリームがnullの場合は、それの使用時にNullPointerExceptionがスローされる可能性があります。- パラメータ:
os
- OutputStreamオブジェクト
-
-
メソッドの詳細
-
write
public void write(int b) throws IOException
指定されたバイトをこの出力ストリームに書き込みます。- オーバーライド:
write
、クラス:FilterOutputStream
- パラメータ:
b
-byte
。- 例外:
IOException
- 入出力エラーが発生した場合。
-
write
public void write(byte[] b) throws IOException
指定されたバイト配列のb.length
バイトをこの出力ストリームに書き込みます。CipherOutputStream
のwrite
メソッドは、3つの引数b
、0
、およびb.length
を指定して3つの引数をとるwrite
メソッドを呼び出します。- オーバーライド:
write
、クラス:FilterOutputStream
- パラメータ:
b
- データ。- 例外:
NullPointerException
-b
がnullである場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
write(byte[], int, int)
-
write
public void write(byte[] b, int off, int len) throws IOException
指定されたバイト配列のオフセット位置off
から始まるlen
バイトをこの出力ストリームに書き込みます。- オーバーライド:
write
、クラス:FilterOutputStream
- パラメータ:
b
- データ。off
- データの開始オフセット。len
- 書き込むバイト数。- 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
FilterOutputStream.write(int)
-
flush
public void flush() throws IOException
カプセル化された暗号オブジェクトによってすでに処理された、バッファに格納された出力バイトを強制的に書き出して、この出力ストリームをフラッシュします。カプセル化された暗号によってバッファに格納され、処理されるのを待っているバイトは書き出されません。 たとえば、カプセル化された暗号がブロック暗号であり、
write
メソッドの1つを使用して書き込まれたバイト数の合計がその暗号のブロック・サイズより小さい場合、バイトは書き出されません。- 定義:
flush
、インタフェース:Flushable
- オーバーライド:
flush
、クラス:FilterOutputStream
- 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
FilterOutputStream.out
-
close
public void close() throws IOException
出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。このメソッドは、カプセル化された暗号オブジェクトによってバッファに格納されたすべてのバイトが処理されるようにする、カプセル化された暗号オブジェクトの
doFinal
メソッドを呼び出します。 結果を書き出すには、この出力ストリームのflush
メソッドを呼び出します。このメソッドは、カプセル化された暗号オブジェクトを初期状態にリセットして、基本となる出力ストリームの
close
メソッドを呼び出します。- 定義:
close
、インタフェース:AutoCloseable
- 定義:
close
、インタフェース:Closeable
- オーバーライド:
close
、クラス:FilterOutputStream
- 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
FilterOutputStream.flush()
,FilterOutputStream.out
-
-