インタフェースImageOutputStream
- すべてのスーパー・インタフェース:
AutoCloseable,Closeable,DataInput,DataOutput,ImageInputStream
- 既知のすべての実装クラス:
FileCacheImageOutputStream,FileImageOutputStream,ImageOutputStreamImpl,MemoryCacheImageOutputStream
ImageWriterで使用されるシーク可能な出力ストリーム・インタフェースです。 OutputStreamやFileなどのさまざまな出力先、および将来の高速な入出力先をこのインタフェースの適切な実装で「ラップ」することで、イメージ入出力APIから使用可能にできます。
標準のOutputStreamとは異なり、ImageOutputStreamは対応するImageInputStreamを拡張します。 したがって、書き込まれた形式のままでストリームから読み込むことができます。 同一のシークおよびフラッシュ位置が読み込みと書込みの両方に適用されます。ただし、バイト整列された書込み前のゼロ以外のビット・オフセットに対応するセマンティックスと、バイト整列された読込み前のゼロ以外のビット・オフセットに対応するセマンティックスは必然的に異なります。 バイトを読み込む場合、すべてのビット・オフセットは読み込む前に0に設定され、バイトを書き込む場合、ゼロ以外のビット・オフセットではバイトの残りのビットが0として書き込まれます。 バイト整列された書込みは、次のバイト位置から開始されます。
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明voidflushBefore(long pos) 指定された位置より前のデータをすべて、OutputStreamやFileなどの基本となる出力先にフラッシュします。voidwrite(byte[] b) バイトのシーケンスをストリームの現在位置に書き込みます。voidwrite(byte[] b, int off, int len) バイトのシーケンスをストリームの現在位置に書き込みます。voidwrite(int b) ストリームの現在の位置に1バイト書き込みます。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表現が続きます。インタフェースjavax.imageio.stream.ImageInputStreamで宣言されたメソッド
close, flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, isCached, isCachedFile, isCachedMemory, length, mark, read, read, 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, seek, setBitOffset, setByteOrder, skipBytes, skipBytes
-
メソッドの詳細
-
write
void write(int b) throws IOException ストリームの現在の位置に1バイト書き込みます。bの上位24ビットは無視されます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。 実装側は、
ImageOutputStreamImplのflushBitsメソッドを使用してこれを保証できます。- 定義:
write、インタフェースDataOutput- パラメータ:
b- 下位8ビットが書き込まれるint。- スロー:
IOException- 入出力エラーが発生した場合。
-
write
void write(byte[] b) throws IOException バイトのシーケンスをストリームの現在位置に書き込みます。b.lengthが0の場合、何も書き込みません。 バイトb[0]を最初に書き込み、次にバイトb[1]を書き込む、という具合になります。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
write、インタフェースDataOutput- パラメータ:
b- 書き込まれるbyte配列。- スロー:
NullPointerException-bがnullである場合。IOException- 入出力エラーが発生した場合。
-
write
void write(byte[] b, int off, int len) throws IOException バイトのシーケンスをストリームの現在位置に書き込みます。lenが0の場合、何も書き込みません。 バイトb[off]を最初に書き込み、次にバイトb[off+1]を書き込む、という具合になります。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。 実装側は、
ImageOutputStreamImplのflushBitsメソッドを使用してこれを保証できます。- 定義:
write、インタフェースDataOutput- パラメータ:
b- 書き込まれるbyte配列。off- データの開始オフセット。len- 書き込むbyte数。- スロー:
IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、またはoff+lenがb.lengthより大きい場合。NullPointerException-bがnullである場合。IOException- 入出力エラーが発生した場合。
-
writeBoolean
void writeBoolean(boolean v) throws IOException ストリームにboolean値を書き込みます。vがtrueの場合は値(byte)1が書き込まれ、vがfalseの場合は値(byte)0が書き込まれます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeBoolean、インタフェースDataOutput- パラメータ:
v- 書き込まれるboolean。- スロー:
IOException- 入出力エラーが発生した場合。
-
writeByte
void writeByte(int v) throws IOException vの下位8ビットをストリームに書き込みます。vの上位24ビットは無視されます。 これはwriteByteが、整数引数のwriteとまったく同じであることを意味します。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeByte、インタフェースDataOutput- パラメータ:
v- 書き込まれるバイト値を含むint。- スロー:
IOException- 入出力エラーが発生した場合。
-
writeShort
void writeShort(int v) throws IOException vの下位16ビットをストリームに書き込みます。vの上位16ビットは無視されます。 ストリームでネットワーク・バイト順が使用される場合、書き込まれるバイトの順序は次のとおりです。(byte)((v >> 8) & 0xff) (byte)(v & 0xff)
それ以外の場合、次のように書き込まれます。(byte)(v & 0xff) (byte)((v >> 8) & 0xff)
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeShort、インタフェースDataOutput- パラメータ:
v- 書き込まれるshort値を含むint。- スロー:
IOException- 入出力エラーが発生した場合。
-
writeChar
void writeChar(int v) throws IOException このメソッドはwriteShortと同義です。- 定義:
writeChar、インタフェースDataOutput- パラメータ:
v- 書き込まれるchar (符号なしshort)値を含むint。- スロー:
IOException- 入出力エラーが発生した場合。- 関連項目:
-
writeInt
void writeInt(int v) throws IOException vの32ビットをストリームに書き込みます。 ストリームでネットワーク・バイト順が使用される場合、書き込まれるバイトの順序は次のとおりです。(byte)((v >> 24) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 8) & 0xff) (byte)(v & 0xff)
それ以外の場合、次のように書き込まれます。(byte)(v & 0xff) (byte)((v >> 8) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 24) & 0xff)
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeInt、インタフェースDataOutput- パラメータ:
v- 書き込まれる値を含むint。- スロー:
IOException- 入出力エラーが発生した場合。
-
writeLong
void writeLong(long v) throws IOException vの64ビットをストリームに書き込みます。 ストリームでネットワーク・バイト順が使用される場合、書き込まれるバイトの順序は次のとおりです。(byte)((v >> 56) & 0xff) (byte)((v >> 48) & 0xff) (byte)((v >> 40) & 0xff) (byte)((v >> 32) & 0xff) (byte)((v >> 24) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 8) & 0xff) (byte)(v & 0xff)
それ以外の場合、次のように書き込まれます。(byte)(v & 0xff) (byte)((v >> 8) & 0xff) (byte)((v >> 16) & 0xff) (byte)((v >> 24) & 0xff) (byte)((v >> 32) & 0xff) (byte)((v >> 40) & 0xff) (byte)((v >> 48) & 0xff) (byte)((v >> 56) & 0xff)
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeLong、インタフェースDataOutput- パラメータ:
v- 書き込まれる値を含むlong。- スロー:
IOException- 入出力エラーが発生した場合。
-
writeFloat
void writeFloat(float v) throws IOException 4バイトで構成されるfloat値を出力ストリームに書き込みます。 これは、最初にこのfloat値をFloat.floatToIntBitsメソッドと同じ方法でintに変換し、その後int値をwriteIntメソッドと同じ方法で書き込むようにして行われます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeFloat、インタフェースDataOutput- パラメータ:
v- 書き込まれる値を含むfloat。- スロー:
IOException- 入出力エラーが発生した場合。
-
writeDouble
void writeDouble(double v) throws IOException 4バイトで構成されるdouble値を出力ストリームに書き込みます。 これは、最初にこのdouble値をDouble.doubleToLongBitsメソッドとまったく同じ方法でlongに変換し、次にwriteLongメソッドとまったく同じ方法でlong値を書き込むかのように行われます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeDouble、インタフェースDataOutput- パラメータ:
v- 書き込まれる値を含むdouble。- スロー:
IOException- 入出力エラーが発生した場合。
-
writeBytes
void writeBytes(String s) throws IOException 文字列を出力ストリームに書き込みます。 文字列sの各文字が順番に取り出され、1バイトが出力ストリームに書き込まれます。sがnullの場合、NullPointerExceptionがスローされます。s.lengthがゼロの場合、バイトは書き込まれません。 それ以外の場合は、最初に文字s[0]が書き込まれ、次にs[1]という具合に続き、最後に書き込まれる文字はs[s.length-1]になります。 各文字については、writeByteメソッドとまったく同じ方法で、1バイト、つまり下位バイトが書き込まれます。 文字列内の各文字の上位8ビットは無視されます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeBytes、インタフェースDataOutput- パラメータ:
s- 書き込まれる値を含むString。- スロー:
NullPointerException-sがnullの場合。IOException- 入出力エラーが発生した場合。
-
writeChars
void writeChars(String s) throws IOException 文字列を出力ストリームに書き込みます。 文字列sの各文字が、順番に取り出され、現在のバイト順の設定に従った順序で、2バイトが出力ストリームに書き込まれます。 ネットワーク・バイト順が使用されると高位バイトが最初に書き込まれ、そうでない場合は逆になります。sがnullの場合、NullPointerExceptionがスローされます。s.lengthがゼロの場合、バイトは書き込まれません。 それ以外の場合は、最初に文字s[0]が書き込まれ、次にs[1]という具合に続き、最後に書き込まれる文字はs[s.length-1]になります。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- 定義:
writeChars、インタフェースDataOutput- パラメータ:
s- 書き込まれる値を含むString。- スロー:
NullPointerException-sがnullの場合。IOException- 入出力エラーが発生した場合。
-
writeUTF
void writeUTF(String s) throws IOException 長さ情報の2バイトを、ネットワーク・バイト順で出力ストリームに書き込みます。その後ろには、文字列s内の各文字の 修正UTF-8表現が続きます。sがnullの場合、NullPointerExceptionがスローされます。 文字列s内の各文字は、文字の値に基づいて、1、2、または3バイトのグループに変換されます。文字
cが\u0001-\u007fの範囲にある場合、次のような1バイトで表現されます。(byte)c
文字
cが\u0000の場合や、\u0080-\u07ffの範囲にある場合には、次の順序で書き込まれる2バイトによって表されます。(byte)(0xc0 | (0x1f & (c >> 6))) (byte)(0x80 | (0x3f & c))文字
cが\u0800-uffffの範囲にある場合、次の順序で書き込まれる3バイトによって表されます。(byte)(0xe0 | (0x0f & (c >> 12))) (byte)(0x80 | (0x3f & (c >> 6))) (byte)(0x80 | (0x3f & c))まず、
sのすべての文字を表すのに必要な総バイト数が計算されます。 この数値が65535を超える場合は、UTFDataFormatExceptionがスローされます。 それ以外の場合は、この長さがwriteShortメソッドとまったく同じ方法で出力ストリームに書き込まれます。次に、文字列s内の各文字の1、2、または3バイト表現が書き込まれます。現在のバイト順の設定は無視されます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
ノート: ここで使用される修正UTF-8は標準UTF-8と互換性がありません。このため、標準UTF-8を使用するイメージ形式の実装ではこのメソッドを使用しないでください。
- 定義:
writeUTF、インタフェースDataOutput- パラメータ:
s- 書き込まれる値を含むString。- スロー:
NullPointerException-sがnullの場合。UTFDataFormatException-sの修正UTF-8表現に65536を超えるバイトが必要な場合。IOException- 入出力エラーが発生した場合。
-
writeShorts
void writeShorts(short[] s, int off, int len) throws IOException shortのシーケンスをストリームの現在位置に書き込みます。lenが0の場合、何も書き込みません。 最初にshorts[off]、次にshorts[off+1]、という順序で書込みが行われます。 ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- パラメータ:
s- 書き込まれるshort配列。off- データの開始オフセット。len- 書き込むshort数。- スロー:
IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、またはoff+lenがs.lengthより大きい場合。NullPointerException-sがnullの場合。IOException- 入出力エラーが発生した場合。
-
writeChars
void writeChars(char[] c, int off, int len) throws IOException charのシーケンスをストリームの現在位置に書き込みます。lenが0の場合、何も書き込みません。 最初にcharc[off]、次にcharc[off+1]、という順序で書込みが行われます。 ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- パラメータ:
c- 書き込まれるchar配列。off- データの開始オフセット。len- 書き込むchar数。- スロー:
IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、またはoff+lenがc.lengthより大きい場合。NullPointerException-cがnullの場合。IOException- 入出力エラーが発生した場合。
-
writeInts
void writeInts(int[] i, int off, int len) throws IOException intのシーケンスをストリームの現在位置に書き込みます。lenが0の場合、何も書き込みません。 最初にinti[off]、次にinti[off+1]、という順序で書込みが行われます。 ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- パラメータ:
i- 書き込まれるint配列。off- データの開始オフセット。len- 書き込むint数。- スロー:
IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、またはoff+lenがi.lengthより大きい場合。NullPointerException-iがnullの場合。IOException- 入出力エラーが発生した場合。
-
writeLongs
void writeLongs(long[] l, int off, int len) throws IOException longのシーケンスをストリームの現在位置に書き込みます。lenが0の場合、何も書き込みません。 最初にlongl[off]、次にlongl[off+1]、という順序で書込みが行われます。 ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- パラメータ:
l- 書き込まれるlong配列。off- データの開始オフセット。len- 書き込むlong数。- スロー:
IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、またはoff+lenがl.lengthより大きい場合。NullPointerException-lがnullの場合。IOException- 入出力エラーが発生した場合。
-
writeFloats
void writeFloats(float[] f, int off, int len) throws IOException floatのシーケンスをストリームの現在位置に書き込みます。lenが0の場合、何も書き込みません。 最初にfloatf[off]、次にfloatf[off+1]、という順序で書込みが行われます。 ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- パラメータ:
f- 書き込まれるfloat配列。off- データの開始オフセット。len- 書き込むfloat数。- スロー:
IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、またはoff+lenがf.lengthより大きい場合。NullPointerException-fがnullの場合。IOException- 入出力エラーが発生した場合。
-
writeDoubles
void writeDoubles(double[] d, int off, int len) throws IOException doubleのシーケンスをストリームの現在位置に書き込みます。lenが0の場合、何も書き込みません。 最初にdoubled[off]、次にdoubled[off+1]、という順序で書込みが行われます。 ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。 書込み後は、ビット・オフセットは0です。
- パラメータ:
d- 書き込まれるdoubles配列。off- データの開始オフセット。len- 書き込むdouble数。- スロー:
IndexOutOfBoundsException-offが負の値の場合、lenが負の値の場合、またはoff+lenがd.lengthより大きい場合。NullPointerException-dがnullの場合。IOException- 入出力エラーが発生した場合。
-
writeBit
void writeBit(int bit) throws IOException 引数の最下位ビットで指定された1ビットを、ストリームの現在のバイト位置の現在のビット・オフセットに書き込みます。 引数の上位31ビットは無視されます。 指定されたビットにより、その位置にあった以前のビットは置換されます。 ビット・オフセットは1ずつ増加し、8を法として減分します。特定のバイトの任意のビットが、バイトが出力先にフラッシュされる時点で設定されていなかった場合、これらのビットは自動的に0に設定されます。
- パラメータ:
bit- その最下位ビットがストリームに書き込まれるint。- スロー:
IOException- 入出力エラーが発生した場合。
-
writeBits
void writeBits(long bits, int numBits) throws IOException bits引数の下位numBitsビットのビット・シーケンスを左から右に、ストリームの現在のバイト位置の現在のビット・オフセットに書き込みます。 引数の上位64 - numBitsビットは無視されます。 ビット・オフセットはnumBitsだけ増加し、8を法として減分します。 ビット・オフセット0は常にバイトの最高位ビットを示し、ビットのバイトは検出された順番に書き込まれます。 したがってビットの書込みは、事実上常にネットワーク・バイト順です。 実際のストリーム・バイト順の設定は無視されます。ビット・データは、
flushBeforeが呼び出されるまでメモリーに無限に蓄積されます。 呼び出された時点で、フラッシュ位置より前のビット・データがすべて書き込まれます。特定のバイトの任意のビットが、バイトが出力先にフラッシュされる時点で設定されていなかった場合、これらのビットは自動的に0に設定されます。
- パラメータ:
bits- ビット位置numBits - 1から最下位ビットまでが書き込まれるビットを含むlong。numBits- 0から64までのint。- スロー:
IllegalArgumentException-numBitsが0から64の範囲内にない場合。IOException- 入出力エラーが発生した場合。
-
flushBefore
void flushBefore(long pos) throws IOException 指定された位置より前のデータをすべて、OutputStreamやFileなどの基本となる出力先にフラッシュします。 ストリームのフラッシュ部分にシークするとIndexOutOfBoundsExceptionがスローされます。- 定義:
flushBefore、インタフェースImageInputStream- パラメータ:
pos- 出力先にフラッシュされるストリーム接頭辞の長さを含むlong。- スロー:
IndexOutOfBoundsException-posがストリームのフラッシュ部分にあるか、または現在のストリーム位置を通過した場合。IOException- 入出力エラーが発生した場合。
-