モジュール java.desktop
パッケージ javax.imageio.stream

クラスFileCacheImageOutputStream

すべての実装されたインタフェース:
Closeable, DataInput, DataOutput, AutoCloseable, ImageInputStream, ImageOutputStream

public class FileCacheImageOutputStream extends ImageOutputStreamImpl
出力を通常のOutputStreamに書き込むImageOutputStreamの実装です。 ファイルは、データを出力ストリームにフラッシュするまでキャッシュとして使用されます。
  • コンストラクタの詳細

    • FileCacheImageOutputStream

      public FileCacheImageOutputStream(OutputStream stream, File cacheDir) throws IOException
      指定されたoutputStreamに書き込むFileCacheImageOutputStreamを構築します。

      一時ファイルがキャッシュとして使用されます。 cacheDirnullではなく、ディレクトリである場合、ファイルがそこに作成されます。 nullの場合、システム固有のデフォルト一時ファイル・ディレクトリが使用されます。詳細はFile.createTempFileのドキュメントを参照してください。

      パラメータ:
      stream - 書込み先のOutputStream
      cacheDir - キャッシュ・ファイルが作成される場所を示すFile。システム・ディレクトリを使用する場合はnull
      例外:
      IllegalArgumentException - streamnullの場合。
      IllegalArgumentException - cacheDirnull以外であるが、ディレクトリではない場合。
      IOException - キャッシュ・ファイルを作成できない場合。
  • メソッドの詳細

    • read

      public int read() throws IOException
      クラスからコピーされた説明: ImageInputStreamImpl
      ストリームから1バイトを読み込み、それを0から255までのintとして返します。 EOFに達すると-1を返します。

      サブクラスでこのメソッドを実装する必要があります。 サブクラス実装で終了する前にストリーム位置を更新します。

      ストリーム内のビット・オフセットは、読込みを行う前に0にリセットする必要があります。

      定義:
      read、インタフェースImageInputStream
      定義:
      read、クラスImageInputStreamImpl
      戻り値:
      ストリーム内の次のバイトの値。または、EOFに達した場合は-1
      例外:
      IOException - ストリームが閉じられている場合。
    • read

      public int read(byte[] b, int off, int len) throws IOException
      クラスからコピーされた説明: ImageInputStreamImpl
      ストリームから最大lenバイトを読み込み、bにインデックスoffから格納します。 ストリームの終わりに達したためにバイトを読み込めない場合は、-1を返します。

      ストリーム内のビット・オフセットは、読込みを行う前に0にリセットする必要があります。

      サブクラスでこのメソッドを実装する必要があります。 サブクラス実装で終了する前にストリーム位置を更新します。

      定義:
      read、インタフェースImageInputStream
      定義:
      read、クラスImageInputStreamImpl
      パラメータ:
      b - 書き込まれるバイト配列。
      off - 書込み先のb内の開始位置。
      len - 読み込む最大バイト数。
      戻り値:
      実際に読み込まれたバイト数、またはEOFを示す-1
      例外:
      IOException - 入出力エラーが発生した場合。
    • write

      public void write(int b) throws IOException
      インタフェースからコピーされた説明: ImageOutputStream
      ストリームの現在の位置に1バイト書き込みます。 bの上位24ビットは無視されます。

      ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。 実装側は、ImageOutputStreamImplflushBitsメソッドを使用してこれを保証できます。

      パラメータ:
      b - 下位8ビットが書き込まれるint
      例外:
      IOException - 入出力エラーが発生した場合。
    • write

      public void write(byte[] b, int off, int len) throws IOException
      インタフェースからコピーされた説明: ImageOutputStream
      バイトのシーケンスをストリームの現在位置に書き込みます。 lenが0の場合、何も書き込みません。 バイトb[off]を最初に書き込み、次にバイトb[off+1]を書き込む、という具合になります。

      ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。 実装側は、ImageOutputStreamImplflushBitsメソッドを使用してこれを保証できます。

      パラメータ:
      b - 書き込まれるbyte配列。
      off - データの開始オフセット。
      len - 書き込むbyte数。
      例外:
      IOException - 入出力エラーが発生した場合。
    • length

      public long length()
      クラスからコピーされた説明: ImageInputStreamImpl
      ストリームが未知の長さであることを示す-1Lを返します。 サブクラスでこのメソッドをオーバーライドして、実際の長さの情報を指定する必要があります。
      定義:
      length、インタフェースImageInputStream
      オーバーライド:
      length、クラスImageInputStreamImpl
      戻り値:
      未知の長さを示す -1L
    • seek

      public void seek(long pos) throws IOException
      現在のストリーム位置を設定してビット・オフセットを0にリセットします。 シークでファイルの終わりを通過することは正常であり、EOFExceptionは読込みの場合のみスローされます。 書込みが実行されるまで、ファイル長は増加しません。
      パラメータ:
      pos - 目的のファイル・ポインタ位置を示すlong
      例外:
      IndexOutOfBoundsException - posがフラッシュ位置よりも小さい場合。
      IOException - その他の入出力エラーが発生した場合。
    • isCached

      public boolean isCached()
      後方へのシークを可能にするために、このImageOutputStreamがデータをキャッシュするため、trueが返されます。
      定義:
      isCached、インタフェースImageInputStream
      オーバーライド:
      isCached、クラスImageInputStreamImpl
      戻り値:
      true
      関連項目:
    • isCachedFile

      public boolean isCachedFile()
      このImageOutputStreamはファイル・キャッシュを維持するため、trueが返されます。
      定義:
      isCachedFile、インタフェースImageInputStream
      オーバーライド:
      isCachedFile、クラスImageInputStreamImpl
      戻り値:
      true
      関連項目:
    • isCachedMemory

      public boolean isCachedMemory()
      このImageOutputStreamはメイン・メモリー・キャッシュを維持しないため、falseが返されます。
      定義:
      isCachedMemory、インタフェースImageInputStream
      オーバーライド:
      isCachedMemory、クラスImageInputStreamImpl
      戻り値:
      false
      関連項目:
    • close

      public void close() throws IOException
      このFileCacheImageOutputStreamを閉じます。 保留中のデータはすべて出力にフラッシュされ、キャッシュ・ファイルは閉じられて削除されます。 出力先OutputStreamは閉じられません。
      例外:
      IOException - エラーが発生した場合
    • flushBefore

      public void flushBefore(long pos) throws IOException
      インタフェースからコピーされた説明: ImageOutputStream
      指定された位置より前のデータをすべて、OutputStreamFileなどの基本となる出力先にフラッシュします。 ストリームのフラッシュ部分にシークするとIndexOutOfBoundsExceptionがスローされます。
      パラメータ:
      pos - 出力先にフラッシュされるストリーム接頭辞の長さを含むlong
      例外:
      IOException - 入出力エラーが発生した場合。