- すべての実装されたインタフェース:
Closeable
,Flushable
,AutoCloseable
たとえば、Cipherが暗号化用に初期化されていると、CipherOutputStreamは、暗号化されたデータを書き込む前に、データを暗号化しようとします。
このクラスは、上位クラスjava.io.OutputStreamおよびjava.io.FilterOutputStreamのセマンティックス、特に失敗セマンティックスに厳密に従います。 このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。 さらに、このクラスは、上位クラスがスローしない例外をすべてキャッチします。 特に、このクラスは、復号化時の整合性チェックの失敗によってスローされるBadPaddingExceptionおよびその他の例外をキャッチします。 これらの例外は再スローされないため、クライアントは整合性チェックが失敗したことを通知されません。 この動作により、このクラスは、認証が失敗したときにアプリケーションが明示的な通知を必要とする場合に、操作の認証モード(たとえば、GCMなど)の暗号化で使用するのには適していない可能性があります。 このようなアプリケーションは、このクラスを使用するかわりにCipher APIを直接使用できます。
このクラスを使用するプログラマにとって、このクラスで定義またはオーバーライドされていないメソッド(上位クラスのいずれかにあとで追加された新規メソッドまたはコンストラクタ)を使用しないようにすることは重要です。これらのメソッド実装は、CipherOutputStreamへのセキュリティ面の影響を考慮に入れていないためです。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
フィールドのサマリー
クラス java.io.FilterOutputStreamで宣言されたフィールド
out
-
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protected
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) 指定されたバイトをこの出力ストリームに書き込みます。クラス java.io.OutputStreamで宣言されたメソッド
nullOutputStream
-
コンストラクタの詳細
-
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
。- throws:
IOException
- 入出力エラーが発生した場合。
-
write
public void write(byte[] b) throws IOException 指定されたバイト配列のb.length
バイトをこの出力ストリームに書き込みます。CipherOutputStream
のwrite
メソッドは、3つの引数b
、0
、およびb.length
を指定して3つの引数をとるwrite
メソッドを呼び出します。- オーバーライド:
write
、クラスFilterOutputStream
- パラメータ:
b
- データ。- throws:
NullPointerException
-b
がnullである場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
-
write
public void write(byte[] b, int off, int len) throws IOException 指定されたバイト配列のオフセット位置off
から始まるlen
バイトをこの出力ストリームに書き込みます。- オーバーライド:
write
、クラスFilterOutputStream
- パラメータ:
b
- データ。off
- データの開始オフセット。len
- 書き込むバイト数。- throws:
IOException
- 入出力エラーが発生した場合。- 関連項目:
-
flush
public void flush() throws IOExceptionカプセル化された暗号オブジェクトによってすでに処理された、バッファに格納された出力バイトを強制的に書き出して、この出力ストリームをフラッシュします。カプセル化された暗号によってバッファに格納され、処理されるのを待っているバイトは書き出されません。 たとえば、カプセル化された暗号がブロック暗号であり、
write
メソッドの1つを使用して書き込まれたバイト数の合計がその暗号のブロック・サイズより小さい場合、バイトは書き出されません。- 定義:
flush
、インタフェースFlushable
- オーバーライド:
flush
、クラスFilterOutputStream
- throws:
IOException
- 入出力エラーが発生した場合。- 関連項目:
-
close
public void close() throws IOException出力ストリームを閉じ、このストリームに関連するすべてのシステム・リソースを解放します。このメソッドは、カプセル化された暗号オブジェクトによってバッファに格納されたすべてのバイトが処理されるようにする、カプセル化された暗号オブジェクトの
doFinal
メソッドを呼び出します。 結果を書き出すには、この出力ストリームのflush
メソッドを呼び出します。このメソッドは、カプセル化された暗号オブジェクトを初期状態にリセットして、基本となる出力ストリームの
close
メソッドを呼び出します。- 定義:
close
、インタフェースAutoCloseable
- 定義:
close
、インタフェースCloseable
- オーバーライド:
close
、クラスFilterOutputStream
- throws:
IOException
- 入出力エラーが発生した場合。- 関連項目:
-