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)
このメソッドは
と同義です。 |
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, 2013, Oracle and/or its affiliates. All rights reserved.