JavaTM 2
Platform
Std. Ed. v1.4.0

javax.crypto
クラス CipherOutputStream

java.lang.Object
  |
  +--java.io.OutputStream
        |
        +--java.io.FilterOutputStream
              |
              +--javax.crypto.CipherOutputStream

public class CipherOutputStream
extends FilterOutputStream

CipherOutputStream は OutputStream と Cipher で構成されているので、write() メソッドはまずデータを処理してから基本となる OutputStream に書き込みます。Cipher は、完全に初期化してからでないと、CipherOutputStream で使用できません。

たとえば、Cipher が暗号化用に初期化されていると、CipherOutputStream は、暗号化されたデータを書き込む前に、データを暗号化しようとします。

このクラスは、上位クラス java.io.OutputStream および java.io.FilterOutputStream のセマンティクス、特に失敗セマンティクスに厳密に従います。このクラスでは、それらのメソッドは上位クラスで厳密に指定されており、すべてオーバーライドされます。さらに、このクラスは上位クラスでスローされないすべての例外をキャッチします。

このクラスを使用するプログラマは、このクラスで定義されていないメソッド、またはオーバーライドされていないメソッド (新しいメソッドや、あとでスーパークラスの 1 つに追加されるコンストラクタなど) を絶対に使用しないでください。それらのメソッドの設計と実装では、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)
          指定されたバイトをこの出力ストリームに書き込みます。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

CipherOutputStream

public CipherOutputStream(OutputStream os,
                          Cipher c)
OutputStream および Cipher から CipherOutputStream を構築します。

パラメータ:
os - OutputStream オブジェクト
c - 初期化された Cipher オブジェクト

CipherOutputStream

protected CipherOutputStream(OutputStream os)
OutputStream から Cipher を指定しないで CipherOutputStream を構築します。これは、NullCipher を使用して CipherOutputStream を構築する効果を持ちます。

パラメータ:
os - OutputStream オブジェクト
メソッドの詳細

write

public void write(int b)
           throws IOException
指定されたバイトをこの出力ストリームに書き込みます。

オーバーライド:
クラス FilterOutputStream 内の write
パラメータ:
b - byte
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2

write

public void write(byte[] b)
           throws IOException
指定されたバイト配列の b.length バイトをこの出力ストリームに書き込みます。

CipherOutputStreamwrite メソッドは、引数 b0、および b.length を指定して 3 つの引数をとる write メソッドを呼び出します。

オーバーライド:
クラス FilterOutputStream 内の write
パラメータ:
b - データ
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
write(byte[], int, int)

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
指定されたバイト配列の、オフセット位置 off から始まる len バイトをこの出力ストリームに書き込みます。

オーバーライド:
クラス FilterOutputStream 内の write
パラメータ:
b - データ
off - データの開始オフセット
len - 書き込むバイト数
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
FilterOutputStream.write(int)

flush

public void flush()
           throws IOException
カプセル化された暗号オブジェクトによってすでに処理された、バッファに格納された出力バイトを強制的に書き出して、この出力ストリームをフラッシュします。

カプセル化された暗号によってバッファに格納され、処理されるのを待っているバイトは書き出されません。たとえば、カプセル化された暗号がブロック暗号であり、write メソッドの 1 つを使用して書き込まれたバイト数の合計がその暗号のブロックサイズより小さい場合、バイトは書き出されません。

オーバーライド:
クラス FilterOutputStream 内の flush
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
FilterOutputStream.out

close

public void close()
           throws IOException
出力ストリームを閉じ、このストリームに関連するすべてのシステムリソースを解放します。

このメソッドは、カプセル化された暗号オブジェクトによってバッファに格納されたすべてのバイトが処理されるようにする、カプセル化された暗号オブジェクトの doFinal メソッドを呼び出します。結果を書き出すには、この出力ストリームの flush メソッドを呼び出します。

このメソッドは、カプセル化された暗号オブジェクトを初期状態にリセットして、基本となる出力ストリームの close メソッドを呼び出します。

オーバーライド:
クラス FilterOutputStream 内の close
例外:
IOException - 入出力エラーが発生した場合
導入されたバージョン:
JCE1.2
関連項目:
FilterOutputStream.flush(), FilterOutputStream.out

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

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.