クラスFileCacheImageOutputStream

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

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

    クラスで宣言されたフィールド ImageInputStreamImpl

    bitOffset, byteOrder, flushedPos, streamPos
    修飾子と型
    フィールド
    説明
    protected int
    ストリーム内の現在のビット・オフセットです。
    protected ByteOrder
    列挙クラスjava.nio.ByteOrderのインスタンスで表されるストリームのバイト順で、ByteOrder.BIG_ENDIANはネットワーク・バイト順、ByteOrder.LITTLE_ENDIANは逆順を示します。
    protected long
    それより前のデータが破棄される位置です。
    protected long
    ストリーム内の現在の読込み位置です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    指定されたoutputStreamに書き込むFileCacheImageOutputStreamを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    このFileCacheImageOutputStreamを閉じます。
    void
    flushBefore(long pos)
    指定された位置より前のデータをすべて、OutputStreamFileなどの基本となる出力先にフラッシュします。
    boolean
    後方へのシークを可能にするために、このImageOutputStreamがデータをキャッシュするため、trueが返されます。
    boolean
    このImageOutputStreamはファイル・キャッシュを維持するため、trueが返されます。
    boolean
    このImageOutputStreamはメイン・メモリー・キャッシュを維持しないため、falseが返されます。
    int
    ストリームから1バイトを読み込み、それを0から255までのintとして返します。
    int
    read(byte[] b, int off, int len)
    ストリームから最大lenバイトを読み込み、bにインデックスoffから格納します。
    void
    seek(long pos)
    現在のストリーム位置を設定してビット・オフセットを0にリセットします。
    void
    write(byte[] b, int off, int len)
    バイトのシーケンスをストリームの現在位置に書き込みます。
    void
    write(int b)
    ストリームの現在の位置に1バイト書き込みます。

    クラスで宣言されたメソッド ImageOutputStreamImpl

    flushBits, write, writeBit, writeBits, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeChars, writeDouble, writeDoubles, writeFloat, writeFloats, writeInt, writeInts, writeLong, writeLongs, writeShort, writeShorts, writeUTF
    修飾子と型
    メソッド
    説明
    protected final void
    ビット・オフセットがゼロでない場合、現在のバイトの残りのビットを強制的に0にして、ストリーム位置を1だけ増加します。
    void
    write(byte[] b)
    バイトのシーケンスをストリームの現在位置に書き込みます。
    void
    writeBit(int bit)
    引数の最下位ビットで指定された1ビットを、ストリームの現在のバイト位置の現在のビット・オフセットに書き込みます。
    void
    writeBits(long bits, int numBits)
    bits引数の下位numBitsビットのビット・シーケンスを左から右に、ストリームの現在のバイト位置の現在のビット・オフセットに書き込みます。
    void
    writeBoolean(boolean v)
    ストリームにboolean値を書き込みます。
    void
    writeByte(int v)
    vの下位8ビットをストリームに書き込みます。
    void
    文字列を出力ストリームに書き込みます。
    void
    writeChar(int v)
    このメソッドはwriteShortと同義です。
    void
    writeChars(char[] c, int off, int len)
    charのシーケンスをストリームの現在位置に書き込みます。
    void
    文字列を出力ストリームに書き込みます。
    void
    writeDouble(double v)
    4バイトで構成されるdouble値を出力ストリームに書き込みます。
    void
    writeDoubles(double[] d, int off, int len)
    doubleのシーケンスをストリームの現在位置に書き込みます。
    void
    writeFloat(float v)
    4バイトで構成されるfloat値を出力ストリームに書き込みます。
    void
    writeFloats(float[] f, int off, int len)
    floatのシーケンスをストリームの現在位置に書き込みます。
    void
    writeInt(int v)
    vの32ビットをストリームに書き込みます。
    void
    writeInts(int[] i, int off, int len)
    intのシーケンスをストリームの現在位置に書き込みます。
    void
    writeLong(long v)
    vの64ビットをストリームに書き込みます。
    void
    writeLongs(long[] l, int off, int len)
    longのシーケンスをストリームの現在位置に書き込みます。
    void
    writeShort(int v)
    vの下位16ビットをストリームに書き込みます。
    void
    writeShorts(short[] s, int off, int len)
    shortのシーケンスをストリームの現在位置に書き込みます。
    void
    長さ情報の2バイトを、ネットワーク・バイト順で出力ストリームに書き込みます。その後ろには、文字列s内の各文字の 修正UTF-8表現が続きます。

    クラスで宣言されたメソッド ImageInputStreamImpl

    checkClosed, flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, length, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, setBitOffset, setByteOrder, skipBytes, skipBytes
    修飾子と型
    メソッド
    説明
    protected final void
    ストリームが閉じられていた場合はIOExceptionをスローします。
    void
    現在のストリーム位置より前の初期のストリーム位置を破棄します。
    int
    現在のビット・オフセットを0から7までの整数として返します。
    このストリームから読み込まれるデータのバイト順を、java.nio.ByteOrder列挙のインスタンスとして返します。
    long
    シークが実行されるストリーム内の一番初期の位置を返します。
    long
    ストリームの現在のバイト位置を返します。
    long
    ストリームが未知の長さであることを示す-1Lを返します。
    void
    マーク付けされた位置のスタック上に現在のストリーム位置をプッシュします。
    int
    read(byte[] b)
    read(b, 0, b.length)を呼び出す簡易メソッドです。
    int
    ストリームから1ビットを読み込み、それを値0または1intとして返します。
    long
    readBits(int numBits)
    ストリームからビット列を読み込み、longとして返します。読み込んだ最初のビットが出力の最上位ビットになります。
    boolean
    ストリームから1バイトを読み込み、0でない場合はtrueboolean値を返し、0の場合はfalseを返します。
    byte
    ストリームから1バイトを読み込み、それをbyte値として返します。
    void
    readBytes(IIOByteBuffer buf, int len)
    ストリームからlenバイトまでを読み込み、指定されたIIOByteBufferを変更してデータを検出可能なバイト配列、オフセット、および長さを示します。
    char
    readUnsignedShortと同等、ただし結果はcharデータ型を使用して返されます。
    double
    ストリームから8バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をdouble値として返します。
    float
    ストリームから4バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をfloat値として返します。
    void
    readFully(byte[] b)
    ストリームからb.lengthバイトを読み込み、bにインデックス0から格納します。
    void
    readFully(byte[] b, int off, int len)
    ストリームからlenバイトを読み込み、bにインデックスoffから格納します。
    void
    readFully(char[] c, int off, int len)
    ストリームから現在のバイト順に従ってlenバイトのchar (符号なし16ビット整数)値を読み込み、それらをcにインデックスoffから格納します。
    void
    readFully(double[] d, int off, int len)
    ストリームから現在のバイト順に従ってlenバイトのdouble (64ビットIEEE倍精度浮動小数点数)値を読み込み、それらをdにインデックスoffから格納します。
    void
    readFully(float[] f, int off, int len)
    ストリームから現在のバイト順に従ってlenバイトのfloat (32ビットIEEE単精度浮動小数点数)値を読み込み、それらをfにインデックスoffから格納します。
    void
    readFully(int[] i, int off, int len)
    ストリームから現在のバイト順に従ってlenバイトのint (符号付き32ビット整数)値を読み込み、それらをiにインデックスoffから格納します。
    void
    readFully(long[] l, int off, int len)
    ストリームから現在のバイト順に従ってlenバイトのlong (符号付き64ビット整数)値を読み込み、それらをlにインデックスoffから格納します。
    void
    readFully(short[] s, int off, int len)
    ストリームから現在のバイト順に従ってlenバイトのshort (符号付き16ビット整数)値を読み込み、それらをsにインデックスoffから格納します。
    int
    ストリームから4バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をint値として返します。
    入力ストリームから、次の行のテキストを読み込みます。
    long
    ストリームから8バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をlong値として返します。
    short
    ストリームから2バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をshort値として返します。
    int
    ストリームからバイトを読み込んで、概念上、整数に変換し、符号拡張ビットを取り除くためにそれを0xffでマスクして、byte値として返します。
    long
    ストリームから4バイトを読み込んで現在のバイト順に従って概念上それらを連結し、結果の値をlongに変換して、符号拡張ビットを取り除くために0xffffffffLでマスクします。その結果を符号なしlong値として返します。
    int
    ストリームから2バイトを読み込んで、現在のバイト順に従って概念上それらを連結し、結果として得られる値をintに変換して、符号拡張ビットを取り除くために0xffffでマスクします。その結果を符号なしint値として返します。
    修正UTF-8形式でエンコードされた文字列を読み込みます。
    void
    マーク付けされた位置のスタックから現在のストリーム・バイトおよびビット位置をリセットします。
    void
    setBitOffset(int bitOffset)
    ビット・オフセットに0から7までの整数を設定します。
    void
    このストリームからの今後のデータ値の読込みのために、バイト順を設定します。
    int
    skipBytes(int n)
    seek(getStreamPosition()+n)を呼び出して、現在のストリーム位置を前進させます。
    long
    skipBytes(long n)
    seek(getStreamPosition()+n)を呼び出して、現在のストリーム位置を前進させます。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • 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 - 入出力エラーが発生した場合。
    • 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
      指定された位置より前のデータをすべて、OutputStreamFileなどの基本となる出力先にフラッシュします。 ストリームのフラッシュ部分にシークするとIndexOutOfBoundsExceptionがスローされます。
      パラメータ:
      pos - 出力先にフラッシュされるストリーム接頭辞の長さを含むlong
      スロー:
      IOException - 入出力エラーが発生した場合。