public interface ImageOutputStream extends ImageInputStream, DataOutput
ImageWriter
で使用されるシーク可能な出力ストリーム・インタフェースです。OutputStream
やFile
などのさまざまな出力先、および将来の高速な入出力先をこのインタフェースの適切な実装で「ラップ」することで、イメージ入出力APIから使用可能にできます。
標準のOutputStream
とは異なり、ImageOutputStreamは対応するImageInputStream
を拡張します。したがって、書き込まれた形式のままでストリームから読み込むことができます。同一のシークおよびフラッシュ位置が読み込みと書込みの両方に適用されます。ただし、バイト整列された書込み前のゼロ以外のビット・オフセットに対応するセマンティックスと、バイト整列された読込み前のゼロ以外のビット・オフセットに対応するセマンティックスは必然的に異なります。バイトを読み込む場合、すべてのビット・オフセットは読み込む前に0に設定され、バイトを書き込む場合、ゼロ以外のビット・オフセットではバイトの残りのビットが0として書き込まれます。バイト整列された書込みは、次のバイト位置から開始されます。
ImageInputStream
修飾子と型 | メソッドと説明 |
---|---|
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 |
writeUTF(String s)
長さ情報の2バイトを、ネットワーク・バイト順で出力ストリームに書き込みます。その後ろには、文字列
s 内の各文字の修正UTF-8表現が続きます。 |
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
void write(int b) throws IOException
b
の上位24ビットは無視されます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。実装側は、ImageOutputStreamImpl
のflushBits
メソッドを使用してこれを保証できます。
write
、インタフェース: DataOutput
b
- 下位8ビットが書き込まれるint
。IOException
- 入出力エラーが発生した場合。void write(byte[] b) throws IOException
b.length
が0の場合、何も書き込みません。バイトb[0]
を最初に書き込み、次にバイトb[1]
を書き込む、という具合になります。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
write
、インタフェース: DataOutput
b
- 書き込まれるbyte
配列。NullPointerException
- b
がnull
の場合。IOException
- 入出力エラーが発生した場合。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
- 入出力エラーが発生した場合。void writeBoolean(boolean v) throws IOException
boolean
値を書き込みます。v
がtrueの場合は値(byte)1
が書き込まれ、v
がfalseの場合は値(byte)0
が書き込まれます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
writeBoolean
、インタフェース: DataOutput
v
- 書き込まれるboolean
。IOException
- 入出力エラーが発生した場合。void writeByte(int v) throws IOException
v
の下位8ビットをストリームに書き込みます。v
の上位24ビットは無視されます。これはwriteByte
が、整数引数のwrite
とまったく同じであることを意味します。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
writeByte
、インタフェース: DataOutput
v
- 書き込まれるバイト値を含むint
。IOException
- 入出力エラーが発生した場合。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
- 入出力エラーが発生した場合。void writeChar(int v) throws IOException
writeShort
と同義です。writeChar
、インタフェース: DataOutput
v
- 書き込まれるchar (符号なしshort)値を含むint
。IOException
- 入出力エラーが発生した場合。writeShort(int)
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
- 入出力エラーが発生した場合。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
- 入出力エラーが発生した場合。void writeFloat(float v) throws IOException
float
値を出力ストリームに書き込みます。これは、最初にこのfloat
値をFloat.floatToIntBits
メソッドと同じ方法でint
に変換し、その後int値をwriteInt
メソッドと同じ方法で書き込むようにして行われます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
writeFloat
、インタフェース: DataOutput
v
- 書き込まれる値を含むfloat
。IOException
- 入出力エラーが発生した場合。void writeDouble(double v) throws IOException
double
値を出力ストリームに書き込みます。これは、最初にこのdouble
値をDouble.doubleToLongBits
メソッドと同じ方法でlong
に変換し、次にlong値をwriteLong
メソッドと同じ方法で書き込むようにして行われます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
writeDouble
、インタフェース: DataOutput
v
- 書き込まれる値を含むdouble
。IOException
- 入出力エラーが発生した場合。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
- 入出力エラーが発生した場合。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
- 入出力エラーが発生した場合。void writeUTF(String s) throws IOException
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
- 入出力エラーが発生した場合。void writeShorts(short[] s, int off, int len) throws IOException
len
が0の場合、何も書き込みません。最初にshort s[off]
、次にshort s[off+1]
、という順序で書込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
s
- 書き込まれるshort
配列。off
- データの開始オフセット。len
- 書き込むshort
数。IndexOutOfBoundsException
- off
が負の値の場合、len
が負の値の場合、またはoff+len
がs.length
より大きい場合。NullPointerException
- s
がnull
の場合。IOException
- 入出力エラーが発生した場合。void writeChars(char[] c, int off, int len) throws IOException
len
が0の場合、何も書き込みません。最初にchar c[off]
、次にchar c[off+1]
、という順序で書込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
c
- 書き込まれるchar
配列。off
- データの開始オフセット。len
- 書き込むchar
数。IndexOutOfBoundsException
- off
が負の値の場合、len
が負の値の場合、またはoff+len
がc.length
より大きい場合。NullPointerException
- c
がnull
の場合。IOException
- 入出力エラーが発生した場合。void writeInts(int[] i, int off, int len) throws IOException
len
が0の場合、何も書き込みません。最初にint i[off]
、次にint i[off+1]
、という順序で書込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
i
- 書き込まれるint
配列。off
- データの開始オフセット。len
- 書き込むint
数。IndexOutOfBoundsException
- off
が負の値の場合、len
が負の値の場合、またはoff+len
がi.length
より大きい場合。NullPointerException
- i
がnull
の場合。IOException
- 入出力エラーが発生した場合。void writeLongs(long[] l, int off, int len) throws IOException
len
が0の場合、何も書き込みません。最初にlong l[off]
、次にlong l[off+1]
、という順序で書込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
l
- 書き込まれるlong
配列。off
- データの開始オフセット。len
- 書き込むlong
数。IndexOutOfBoundsException
- off
が負の値の場合、len
が負の値の場合、またはoff+len
がl.length
より大きい場合。NullPointerException
- l
がnull
の場合。IOException
- 入出力エラーが発生した場合。void writeFloats(float[] f, int off, int len) throws IOException
len
が0の場合、何も書き込みません。最初にfloat f[off]
、次にfloat f[off+1]
、という順序で書込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
f
- 書き込まれるfloat
配列。off
- データの開始オフセット。len
- 書き込むfloat
数。IndexOutOfBoundsException
- off
が負の値の場合、len
が負の値の場合、またはoff+len
がf.length
より大きい場合。NullPointerException
- f
がnull
の場合。IOException
- 入出力エラーが発生した場合。void writeDoubles(double[] d, int off, int len) throws IOException
len
が0の場合、何も書き込みません。最初にdouble d[off]
、次にdouble d[off+1]
、という順序で書込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。
ストリーム内のビット・オフセットがゼロでない場合、現在のバイトの残りは0でパディングされ、最初に書き込まれます。書込み後は、ビット・オフセットは0です。
d
- 書き込まれるdoubles
配列。off
- データの開始オフセット。len
- 書き込むdouble
数。IndexOutOfBoundsException
- off
が負の値の場合、len
が負の値の場合、またはoff+len
がd.length
より大きい場合。NullPointerException
- d
がnull
の場合。IOException
- 入出力エラーが発生した場合。void writeBit(int bit) throws IOException
特定のバイトの任意のビットが、バイトが出力先にフラッシュされる時点で設定されていなかった場合、これらのビットは自動的に0に設定されます。
bit
- その最下位ビットがストリームに書き込まれるint
。IOException
- 入出力エラーが発生した場合。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
- 入出力エラーが発生した場合。void flushBefore(long pos) throws IOException
OutputStream
やFile
などの基本となる出力先にフラッシュします。ストリームのフラッシュ部分にシークするとIndexOutOfBoundsException
がスローされます。flushBefore
、インタフェース: ImageInputStream
pos
- 出力先にフラッシュされるストリーム接頭辞の長さを含むlong
。IndexOutOfBoundsException
- pos
がストリームのフラッシュ部分にあるか、または現在のストリーム位置を通過した場合。IOException
- 入出力エラーが発生した場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.