public class CipherOutputStream extends FilterOutputStream
たとえば、Cipherが暗号化用に初期化されていると、CipherOutputStreamは、暗号化されたデータを書き込む前に、データを暗号化しようとします。
このクラスは、上位クラスjava.io.OutputStreamおよびjava.io.FilterOutputStreamのセマンティックス、特に失敗セマンティックスに厳密に従います。 このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。 さらに、このクラスは、上位クラスがスローしない例外をすべてキャッチします。 特に、このクラスは、復号化時の整合性チェックの失敗によってスローされるBadPaddingExceptionおよびその他の例外をキャッチします。 これらの例外は再スローされないため、クライアントは整合性チェックが失敗したことを通知されません。 この動作により、このクラスは、認証が失敗したときにアプリケーションが明示的な通知を必要とする場合に、操作の認証モード(たとえば、GCMなど)の暗号化で使用するのには適していない可能性があります。 このようなアプリケーションは、このクラスを使用するかわりにCipher APIを直接使用できます。
このクラスを使用するプログラマは、このクラスで定義されていないメソッド、またはオーバーライドされていないメソッド(あとでスーパー・クラスのいずれかに追加された新しいメソッドやコンストラクタなど)を絶対に使用しないでください。それらのメソッドの設計と実装では、CipherOutputStreamに関するセキュリティ上の影響が考慮されていない可能性があるためです。
OutputStream, FilterOutputStream, Cipher, CipherInputStreamout| 修飾子 | コンストラクタ | 説明 |
|---|---|---|
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) |
指定されたバイトをこの出力ストリームに書き込みます。
|
public CipherOutputStream(OutputStream os, Cipher c)
os - OutputStreamオブジェクトc - 初期化されたCipherオブジェクトprotected CipherOutputStream(OutputStream os)
os - OutputStreamオブジェクトpublic void write(int b)
throws IOException
write、クラスFilterOutputStreamb - byte。IOException - 入出力エラーが発生した場合。public void write(byte[] b)
throws IOException
b.lengthバイトをこの出力ストリームに書き込みます。
CipherOutputStreamのwriteメソッドは、3つの引数b、0、およびb.lengthを指定して3つの引数をとるwriteメソッドを呼び出します。
write、クラスFilterOutputStreamb - データ。NullPointerException - bがnullである場合。IOException - 入出力エラーが発生した場合。write(byte[], int, int)public void write(byte[] b,
int off,
int len)
throws IOException
offから始まるlenバイトをこの出力ストリームに書き込みます。write、クラスFilterOutputStreamb - データ。off - データの開始オフセット。len - 書き込むバイト数。IOException - 入出力エラーが発生した場合。FilterOutputStream.write(int)public void flush()
throws IOException
カプセル化された暗号によってバッファに格納され、処理されるのを待っているバイトは書き出されません。 たとえば、カプセル化された暗号がブロック暗号であり、writeメソッドの1つを使用して書き込まれたバイト数の合計がその暗号のブロック・サイズより小さい場合、バイトは書き出されません。
flush、インタフェースFlushableflush、クラスFilterOutputStreamIOException - 入出力エラーが発生した場合。FilterOutputStream.outpublic void close()
throws IOException
このメソッドは、カプセル化された暗号オブジェクトによってバッファに格納されたすべてのバイトが処理されるようにする、カプセル化された暗号オブジェクトのdoFinalメソッドを呼び出します。 結果を書き出すには、この出力ストリームのflushメソッドを呼び出します。
このメソッドは、カプセル化された暗号オブジェクトを初期状態にリセットして、基本となる出力ストリームのcloseメソッドを呼び出します。
close、インタフェースCloseableclose、インタフェースAutoCloseableclose、クラスFilterOutputStreamIOException - 入出力エラーが発生した場合。FilterOutputStream.flush(), FilterOutputStream.out バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。