|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface ImageOutputStream
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 バイトを、ネットワークバイト順で出力ストリームに書き込みます。 |
インタフェース 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 |
メソッドの詳細 |
---|
void write(int b) throws IOException
b
の上位 24 ビットは無視されます。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。実装側は、
の ImageOutputStreamImpl
メソッドを使用してこれを保証できます。
flushBits
DataOutput
内の write
b
- 下位 8 ビットが書き込まれる int
IOException
- 入出力エラーが発生した場合void write(byte[] b) throws IOException
b.length
が 0 の場合、何も書き込みません。バイト b[0]
を最初に書き込み、次にバイト b[1]
を書き込む、という具合になります。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。
DataOutput
内の write
b
- 書き込まれる byte
配列
NullPointerException
- b
が null
の場合
IOException
- 入出力エラーが発生した場合void write(byte[] b, int off, int len) throws IOException
len
が 0 の場合、何も書き込みません。バイト b[off]
を最初に書き込み、次にバイト bo[off + 1]
を書き込む、という具合になります。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。実装側は、
の ImageOutputStreamImpl
メソッドを使用してこれを保証できます。
flushBits
DataOutput
内の write
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 です。
DataOutput
内の writeBoolean
v
- 書き込まれる boolean
IOException
- 入出力エラーが発生した場合void writeByte(int v) throws IOException
v
の下位 8 ビットをストリームに書き込みます。v
の上位 24 ビットは無視されます。これは writeByte
が、整数引数の write
とまったく同じであることを意味します。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。
DataOutput
内の writeByte
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 です。
DataOutput
内の writeShort
v
- 書き込まれる short 値を含む int
IOException
- 入出力エラーが発生した場合void writeChar(int v) throws IOException
writeShort
と同義です。
DataOutput
内の writeChar
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 です。
DataOutput
内の writeInt
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 です。
DataOutput
内の writeLong
v
- 書き込まれる値を含む long
IOException
- 入出力エラーが発生した場合void writeFloat(float v) throws IOException
float
値を出力ストリームに書き込みます。これは、最初にこの float
値を Float.floatToIntBits
メソッドと同じ方法で int
に変換し、その後 int 値を writeInt
メソッドと同じ方法で書き込むようにして行われます。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。
DataOutput
内の writeFloat
v
- 書き込まれる値を含む float
IOException
- 入出力エラーが発生した場合void writeDouble(double v) throws IOException
double
値を出力ストリームに書き込みます。これは、最初にこの double
値を Double.doubleToLongBits
メソッドと同じ方法で long
に変換し、次に long 値を writeLong
メソッドと同じ方法で書き込むようにして行われます。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。
DataOutput
内の writeDouble
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 です。
DataOutput
内の writeBytes
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 です。
DataOutput
内の writeChars
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 を使用するイメージ形式の実装では使用しないでください。
DataOutput
内の writeUTF
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
- 書き込まれる double
配列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
がスローされます。
ImageInputStream
内の flushBefore
pos
- 出力先にフラッシュされるファイル接頭辞の長さを含む long
IndexOutOfBoundsException
- pos
がストリームのフラッシュ部分にあるか、または現在のストリーム位置を通過した場合
IOException
- 入出力エラーが発生した場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。