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, skipBytesvoid write(int b)
throws IOException
b の上位 24 ビットは無視されます。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。実装側は、 の ImageOutputStreamImpl メソッドを使用してこれを保証できます。flushBits
write、インタフェース: DataOutputb - 下位 8 ビットが書き込まれる int。IOException - 入出力エラーが発生した場合。void write(byte[] b)
throws IOException
b.length が 0 の場合、何も書き込みません。バイト b[0] を最初に書き込み、次にバイト b[1] を書き込む、という具合になります。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。
write、インタフェース: DataOutputb - 書き込まれる 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、インタフェース: DataOutputb - 書き込まれる 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、インタフェース: DataOutputv - 書き込まれる boolean。IOException - 入出力エラーが発生した場合。void writeByte(int v)
throws IOException
v の下位 8 ビットをストリームに書き込みます。v の上位 24 ビットは無視されます。これは writeByte が、整数引数の write とまったく同じであることを意味します。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。
writeByte、インタフェース: DataOutputv - 書き込まれるバイト値を含む 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、インタフェース: DataOutputv - 書き込まれる short 値を含む int。IOException - 入出力エラーが発生した場合。void writeChar(int v)
throws IOException
writeShort と同義です。writeChar、インタフェース: DataOutputv - 書き込まれる 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、インタフェース: DataOutputv - 書き込まれる値を含む 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、インタフェース: DataOutputv - 書き込まれる値を含む long。IOException - 入出力エラーが発生した場合。void writeFloat(float v)
throws IOException
float 値を出力ストリームに書き込みます。これは、最初にこの float 値を Float.floatToIntBits メソッドと同じ方法で int に変換し、その後 int 値を writeInt メソッドと同じ方法で書き込むようにして行われます。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。
writeFloat、インタフェース: DataOutputv - 書き込まれる値を含む float。IOException - 入出力エラーが発生した場合。void writeDouble(double v)
throws IOException
double 値を出力ストリームに書き込みます。これは、最初にこの double 値を Double.doubleToLongBits メソッドと同じ方法で long に変換し、次に long 値を writeLong メソッドと同じ方法で書き込むようにして行われます。
ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。
writeDouble、インタフェース: DataOutputv - 書き込まれる値を含む 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、インタフェース: DataOutputs - 書き込まれる値を含む 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、インタフェース: DataOutputs - 書き込まれる値を含む 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、インタフェース: DataOutputs - 書き込まれる値を含む 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、インタフェース: ImageInputStreampos - 出力先にフラッシュされるストリーム接頭辞の長さを含む long。IndexOutOfBoundsException - pos がストリームのフラッシュ部分にあるか、または現在のストリーム位置を通過した場合。IOException - 入出力エラーが発生した場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.