- すべてのスーパー・インタフェース:
AutoCloseable
,Closeable
,DataInput
,DataOutput
,ImageInputStream
- 既知のすべての実装クラス:
FileCacheImageOutputStream
,FileImageOutputStream
,ImageOutputStreamImpl
,MemoryCacheImageOutputStream
ImageWriter
で使用されるシーク可能な出力ストリーム・インタフェースです。 OutputStream
やFile
などのさまざまな出力先、および将来の高速な入出力先をこのインタフェースの適切な実装で「ラップ」することで、イメージ入出力APIから使用可能にできます。
標準のOutputStream
とは異なり、ImageOutputStreamは対応するImageInputStream
を拡張します。 したがって、書き込まれた形式のままでストリームから読み込むことができます。 同一のシークおよびフラッシュ位置が読み込みと書込みの両方に適用されます。ただし、バイト整列された書込み前のゼロ以外のビット・オフセットに対応するセマンティックスと、バイト整列された読込み前のゼロ以外のビット・オフセットに対応するセマンティックスは必然的に異なります。 バイトを読み込む場合、すべてのビット・オフセットは読み込む前に0に設定され、バイトを書き込む場合、ゼロ以外のビット・オフセットではバイトの残りのビットが0として書き込まれます。 バイト整列された書込みは、次のバイト位置から開始されます。
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明void
flushBefore
(long pos) 指定された位置より前のデータをすべて、OutputStream
やFile
などの基本となる出力先にフラッシュします。void
write
(byte[] b) バイトのシーケンスをストリームの現在位置に書き込みます。void
write
(byte[] b, int off, int len) バイトのシーケンスをストリームの現在位置に書き込みます。void
write
(int b) ストリームの現在の位置に1バイト書き込みます。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
writeBytes
(String s) 文字列を出力ストリームに書き込みます。void
writeChar
(int v) このメソッドはwriteShort
と同義です。void
writeChars
(char[] c, int off, int len) charのシーケンスをストリームの現在位置に書き込みます。void
writeChars
(String s) 文字列を出力ストリームに書き込みます。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表現が続きます。インタフェース 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.doubleToLongBits
メソッドの方法とまったく同じ方法で、このdouble
値を最初に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
- 入出力エラーが発生した場合。
-