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