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, 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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。