クラスFileCacheImageOutputStream
java.lang.Object
javax.imageio.stream.ImageInputStreamImpl
javax.imageio.stream.ImageOutputStreamImpl
javax.imageio.stream.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ストリーム内の現在の読込み位置です。 -
コンストラクタのサマリー
コンストラクタコンストラクタ説明FileCacheImageOutputStream(OutputStream stream, File cacheDir) 指定されたoutputStreamに書き込むFileCacheImageOutputStreamを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明voidclose()このFileCacheImageOutputStreamを閉じます。voidflushBefore(long pos) 指定された位置より前のデータをすべて、OutputStreamやFileなどの基本となる出力先にフラッシュします。booleanisCached()後方へのシークを可能にするために、このImageOutputStreamがデータをキャッシュするため、trueが返されます。booleanこのImageOutputStreamはファイル・キャッシュを維持するため、trueが返されます。booleanこのImageOutputStreamはメイン・メモリー・キャッシュを維持しないため、falseが返されます。intread()ストリームから1バイトを読み込み、それを0から255までのintとして返します。intread(byte[] b, int off, int len) ストリームから最大lenバイトを読み込み、bにインデックスoffから格納します。voidseek(long pos) 現在のストリーム位置を設定してビット・オフセットを0にリセットします。voidwrite(byte[] b, int off, int len) バイトのシーケンスをストリームの現在位置に書き込みます。voidwrite(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だけ増加します。voidwrite(byte[] b) バイトのシーケンスをストリームの現在位置に書き込みます。voidwriteBit(int bit) 引数の最下位ビットで指定された1ビットを、ストリームの現在のバイト位置の現在のビット・オフセットに書き込みます。voidwriteBits(long bits, int numBits) bits引数の下位numBitsビットのビット・シーケンスを左から右に、ストリームの現在のバイト位置の現在のビット・オフセットに書き込みます。voidwriteBoolean(boolean v) ストリームにboolean値を書き込みます。voidwriteByte(int v) vの下位8ビットをストリームに書き込みます。voidwriteBytes(String s) 文字列を出力ストリームに書き込みます。voidwriteChar(int v) このメソッドはwriteShortと同義です。voidwriteChars(char[] c, int off, int len) charのシーケンスをストリームの現在位置に書き込みます。voidwriteChars(String s) 文字列を出力ストリームに書き込みます。voidwriteDouble(double v) 4バイトで構成されるdouble値を出力ストリームに書き込みます。voidwriteDoubles(double[] d, int off, int len) doubleのシーケンスをストリームの現在位置に書き込みます。voidwriteFloat(float v) 4バイトで構成されるfloat値を出力ストリームに書き込みます。voidwriteFloats(float[] f, int off, int len) floatのシーケンスをストリームの現在位置に書き込みます。voidwriteInt(int v) vの32ビットをストリームに書き込みます。voidwriteInts(int[] i, int off, int len) intのシーケンスをストリームの現在位置に書き込みます。voidwriteLong(long v) vの64ビットをストリームに書き込みます。voidwriteLongs(long[] l, int off, int len) longのシーケンスをストリームの現在位置に書き込みます。voidwriteShort(int v) vの下位16ビットをストリームに書き込みます。voidwriteShorts(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をスローします。voidflush()現在のストリーム位置より前の初期のストリーム位置を破棄します。int現在のビット・オフセットを0から7までの整数として返します。このストリームから読み込まれるデータのバイト順を、java.nio.ByteOrder列挙のインスタンスとして返します。longシークが実行されるストリーム内の一番初期の位置を返します。longストリームの現在のバイト位置を返します。longlength()ストリームが未知の長さであることを示す-1Lを返します。voidmark()マーク付けされた位置のスタック上に現在のストリーム位置をプッシュします。intread(byte[] b) read(b, 0, b.length)を呼び出す簡易メソッドです。intreadBit()ストリームから1ビットを読み込み、それを値0または1のintとして返します。longreadBits(int numBits) ストリームからビット列を読み込み、longとして返します。読み込んだ最初のビットが出力の最上位ビットになります。booleanストリームから1バイトを読み込み、0でない場合はtrueのboolean値を返し、0の場合はfalseを返します。bytereadByte()ストリームから1バイトを読み込み、それをbyte値として返します。voidreadBytes(IIOByteBuffer buf, int len) ストリームからlenバイトまでを読み込み、指定されたIIOByteBufferを変更してデータを検出可能なバイト配列、オフセット、および長さを示します。charreadChar()readUnsignedShortと同等、ただし結果はcharデータ型を使用して返されます。doubleストリームから8バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をdouble値として返します。floatストリームから4バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をfloat値として返します。voidreadFully(byte[] b) ストリームからb.lengthバイトを読み込み、bにインデックス0から格納します。voidreadFully(byte[] b, int off, int len) ストリームからlenバイトを読み込み、bにインデックスoffから格納します。voidreadFully(char[] c, int off, int len) ストリームから現在のバイト順に従ってlenバイトのchar (符号なし16ビット整数)値を読み込み、それらをcにインデックスoffから格納します。voidreadFully(double[] d, int off, int len) ストリームから現在のバイト順に従ってlenバイトのdouble (64ビットIEEE倍精度浮動小数点数)値を読み込み、それらをdにインデックスoffから格納します。voidreadFully(float[] f, int off, int len) ストリームから現在のバイト順に従ってlenバイトのfloat (32ビットIEEE単精度浮動小数点数)値を読み込み、それらをfにインデックスoffから格納します。voidreadFully(int[] i, int off, int len) ストリームから現在のバイト順に従ってlenバイトのint (符号付き32ビット整数)値を読み込み、それらをiにインデックスoffから格納します。voidreadFully(long[] l, int off, int len) ストリームから現在のバイト順に従ってlenバイトのlong (符号付き64ビット整数)値を読み込み、それらをlにインデックスoffから格納します。voidreadFully(short[] s, int off, int len) ストリームから現在のバイト順に従ってlenバイトのshort (符号付き16ビット整数)値を読み込み、それらをsにインデックスoffから格納します。intreadInt()ストリームから4バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をint値として返します。readLine()入力ストリームから、次の行のテキストを読み込みます。longreadLong()ストリームから8バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をlong値として返します。shortストリームから2バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をshort値として返します。intストリームからバイトを読み込んで、概念上、整数に変換し、符号拡張ビットを取り除くためにそれを0xffでマスクして、byte値として返します。longストリームから4バイトを読み込んで現在のバイト順に従って概念上それらを連結し、結果の値をlongに変換して、符号拡張ビットを取り除くために0xffffffffLでマスクします。その結果を符号なしlong値として返します。intストリームから2バイトを読み込んで、現在のバイト順に従って概念上それらを連結し、結果として得られる値をintに変換して、符号拡張ビットを取り除くために0xffffでマスクします。その結果を符号なしint値として返します。readUTF()修正UTF-8形式でエンコードされた文字列を読み込みます。voidreset()マーク付けされた位置のスタックから現在のストリーム・バイトおよびビット位置をリセットします。voidsetBitOffset(int bitOffset) ビット・オフセットに0から7までの整数を設定します。voidsetByteOrder(ByteOrder byteOrder) このストリームからの今後のデータ値の読込みのために、バイト順を設定します。intskipBytes(int n) seek(getStreamPosition()+n)を呼び出して、現在のストリーム位置を前進させます。longskipBytes(long n) seek(getStreamPosition()+n)を呼び出して、現在のストリーム位置を前進させます。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
コンストラクタの詳細
-
FileCacheImageOutputStream
public FileCacheImageOutputStream(OutputStream stream, File cacheDir) throws IOException 指定されたoutputStreamに書き込むFileCacheImageOutputStreamを構築します。一時ファイルがキャッシュとして使用されます。
cacheDirがnullではなく、ディレクトリである場合、ファイルがそこに作成されます。nullの場合、システム固有のデフォルト一時ファイル・ディレクトリが使用されます。詳細はFile.createTempFileのドキュメントを参照してください。- パラメータ:
stream- 書込み先のOutputStream。cacheDir- キャッシュ・ファイルが作成される場所を示すFile。システム・ディレクトリを使用する場合はnull。- スロー:
IllegalArgumentException-streamがnullの場合。IllegalArgumentException-cacheDirがnull以外であるが、ディレクトリではない場合。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です。 実装側は、
ImageOutputStreamImplのflushBitsメソッドを使用してこれを保証できます。- パラメータ:
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です。 実装側は、
ImageOutputStreamImplのflushBitsメソッドを使用してこれを保証できます。- パラメータ:
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 指定された位置より前のデータをすべて、OutputStreamやFileなどの基本となる出力先にフラッシュします。 ストリームのフラッシュ部分にシークするとIndexOutOfBoundsExceptionがスローされます。- パラメータ:
pos- 出力先にフラッシュされるストリーム接頭辞の長さを含むlong。- スロー:
IOException- 入出力エラーが発生した場合。
-