public abstract class ImageInputStreamImpl extends Object implements ImageInputStream
ImageInputStream インタフェースを実装する abstract クラスです。このクラスの目的は、サブクラスで実装する必要のあるメソッドの数を減らすことです。
特に、このクラスはバイト順の解釈、バッファリング、マーク付けとリセット、破棄、クローズ、および廃棄の大半またはすべてを処理します。
| 修飾子と型 | フィールドと説明 |
|---|---|
protected int |
bitOffset
ストリーム内の現在のビットオフセットです。
|
protected ByteOrder |
byteOrder
列挙クラス
java.nio.ByteOrder のインスタンスで表されるストリームのバイト順で、ByteOrder.BIG_ENDIAN はネットワークバイト順、ByteOrder.LITTLE_ENDIAN は逆順を示します。 |
protected long |
flushedPos
それより前のデータが破棄される位置です。
|
protected long |
streamPos
ストリーム内の現在の読み込み位置です。
|
| コンストラクタと説明 |
|---|
ImageInputStreamImpl()
ImageInputStreamImpl を構築します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected void |
checkClosed()
ストリームが閉じられていた場合は
IOException をスローします。 |
void |
close()
ストリームを閉じます。
|
protected void |
finalize()
ガベージコレクションの前にこのオブジェクトをファイナライズします。
|
void |
flush()
現在のストリーム位置より前の初期のストリーム位置を破棄します。
|
void |
flushBefore(long pos)
指示された位置より前の初期のストリーム部分を破棄します。
|
int |
getBitOffset()
現在のビットオフセットを 0 から 7 までの整数として返します。
|
ByteOrder |
getByteOrder()
このストリームから読み込まれるデータのバイト順を、
java.nio.ByteOrder 列挙のインスタンスとして返します。 |
long |
getFlushedPosition()
シークが実行されるストリーム内の一番初期の位置を返します。
|
long |
getStreamPosition()
ストリームの現在のバイト位置を返します。
|
boolean |
isCached()
デフォルトの実装では false を返します。
|
boolean |
isCachedFile()
デフォルトの実装では false を返します。
|
boolean |
isCachedMemory()
デフォルトの実装では false を返します。
|
long |
length()
ストリームが未知の長さであることを示す
-1L を返します。 |
void |
mark()
マーク付けされた位置のスタック上に現在のストリーム位置をプッシュします。
|
abstract int |
read()
ストリームから 1 バイトを読み込み、それを 0 から 255 までの
int として返します。 |
int |
read(byte[] b)
read(b, 0, b.length) を呼び出す簡易メソッドです。 |
abstract int |
read(byte[] b, int off, int len)
ストリームから最大
len バイトを読み込み、b にインデックス off から格納します。 |
int |
readBit()
ストリームから 1 ビットを読み込み、それを値
0 または 1 の int として返します。 |
long |
readBits(int numBits)
ストリームからビット列を読み込み、
long として返します。読み込んだ最初のビットが出力の最上位ビットになります。 |
boolean |
readBoolean()
ストリームから 1 バイトを読み込み、0 でない場合は
true の boolean 値を返し、0 の場合は false を返します。 |
byte |
readByte()
ストリームから 1 バイトを読み込み、それを
byte 値として返します。 |
void |
readBytes(IIOByteBuffer buf, int len)
ストリームから
len バイトまでを読み込み、指定された IIOByteBuffer を変更してデータを検出可能なバイト配列、オフセット、および長さを示します。 |
char |
readChar()
readUnsignedShort と同等、ただし結果は char データ型を使用して返されます。 |
double |
readDouble()
ストリームから 8 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を
double 値として返します。 |
float |
readFloat()
ストリームから 4 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を
float 値として返します。 |
void |
readFully(byte[] b)
ストリームから
b.length バイトを読み込み、b にインデックス 0 から格納します。 |
void |
readFully(byte[] b, int off, int len)
ストリームから
len バイトを読み込み、b にインデックス off から格納します。 |
void |
readFully(char[] c, int off, int len)
ストリームから現在のバイト順に従って
len バイトの char (符号なし 16 ビット整数) 値を読み込み、それらを c にインデックス off から格納します。 |
void |
readFully(double[] d, int off, int len)
ストリームから現在のバイト順に従って
len バイトの double (64 ビット IEEE 倍精度浮動小数点数) 値を読み込み、それらを d にインデックス off から格納します。 |
void |
readFully(float[] f, int off, int len)
ストリームから現在のバイト順に従って
len バイトの float (32 ビット IEEE 単精度浮動小数点数) 値を読み込み、それらを f にインデックス off から格納します。 |
void |
readFully(int[] i, int off, int len)
ストリームから現在のバイト順に従って
len バイトの int (符号付き 32 ビット整数) 値を読み込み、それらを i にインデックス off から格納します。 |
void |
readFully(long[] l, int off, int len)
ストリームから現在のバイト順に従って
len バイトの long (符号付き 64 ビット整数) 値を読み込み、それらを l にインデックス off から格納します。 |
void |
readFully(short[] s, int off, int len)
ストリームから現在のバイト順に従って
len バイトの short (符号付き 16 ビット整数) 値を読み込み、それらを s にインデックス off から格納します。 |
int |
readInt()
ストリームから 4 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を
int 値として返します。 |
String |
readLine()
入力ストリームから、次の行のテキストを読み込みます。
|
long |
readLong()
ストリームから 8 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を
long 値として返します。 |
short |
readShort()
ストリームから 2 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を
short 値として返します。 |
int |
readUnsignedByte()
ストリームからバイトを読み込んで、概念上、整数に変換し、符号拡張ビットを取り除くためにそれを
0xff でマスクして、byte 値として返します。 |
long |
readUnsignedInt()
ストリームから 4 バイトを読み込んで現在のバイト順に従って概念上それらを連結し、結果の値を long に変換して、符号拡張ビットを取り除くために
0xffffffffL でマスクします。その結果を符号なし long 値として返します。 |
int |
readUnsignedShort()
ストリームから 2 バイトを読み込んで、現在のバイト順に従って概念上それらを連結し、結果として得られる値を
int に変換して、符号拡張ビットを取り除くために 0xffff でマスクします。その結果を符号なし int 値として返します。 |
String |
readUTF()
修正 UTF-8 形式でエンコードされた文字列を読み込みます。
|
void |
reset()
マーク付けされた位置のスタックから現在のストリームバイトおよびビット位置をリセットします。
|
void |
seek(long pos)
現在のストリーム位置を目的の位置に設定します。
|
void |
setBitOffset(int bitOffset)
ビットオフセットに 0 から 7 までの整数を設定します。
|
void |
setByteOrder(ByteOrder byteOrder)
このストリームからの今後のデータ値の読み込みのために、バイト順を設定します。
|
int |
skipBytes(int n)
seek(getStreamPosition() + n) を呼び出して、現在のストリーム位置を前進させます。 |
long |
skipBytes(long n)
seek(getStreamPosition() + n) を呼び出して、現在のストリーム位置を前進させます。 |
protected ByteOrder byteOrder
java.nio.ByteOrder のインスタンスで表されるストリームのバイト順で、ByteOrder.BIG_ENDIAN はネットワークバイト順、ByteOrder.LITTLE_ENDIAN は逆順を示します。デフォルト値は ByteOrder.BIG_ENDIAN です。protected long streamPos
protected int bitOffset
protected long flushedPos
flushedPos は常に 0 以上になります。protected final void checkClosed()
throws IOException
IOException をスローします。サブクラスは、ストリームが開いていることが必要などのメソッドからも、このメソッドを呼び出すことができます。IOException - ストリームが閉じられている場合。public void setByteOrder(ByteOrder byteOrder)
ImageInputStream 列挙クラス java.nio.ByteOrder を使用してバイト順を指定します。値 ByteOrder.BIG_ENDIAN では、高位のバイトが先頭となる、いわゆるビッグエンディアン (ネットワークバイト順) が指定されます。Motorola と Sparc プロセッサはデータをこの形式で格納します。一方 Intel プロセッサは、データを逆順の ByteOrder.LITTLE_ENDIAN で格納します。
バイト順は、readBits メソッドから返される結果 (ImageOutputStream.writeBits により書き込まれる値) には影響を与えません。
setByteOrder、インタフェース: ImageInputStreambyteOrder - ByteOrder.BIG_ENDIAN または java.nio.ByteOrder.LITTLE_ENDIAN のいずれか (今後の読み込みでネットワークバイト順またはその逆順のどちらを使用するかを示す)。ByteOrder, ImageInputStream.getByteOrder(), ImageInputStream.readBits(int)public ByteOrder getByteOrder()
ImageInputStreamjava.nio.ByteOrder 列挙のインスタンスとして返します。getByteOrder、インタフェース: ImageInputStreamByteOrder.BIG_ENDIAN または ByteOrder.LITTLE_ENDIAN のいずれか (使用されるバイト順を示す)。ByteOrder, ImageInputStream.setByteOrder(java.nio.ByteOrder)public abstract int read()
throws IOException
int として返します。EOF に達すると -1 を返します。
サブクラスでこのメソッドを実装する必要があります。サブクラス実装で終了する前にストリーム位置を更新します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットする必要があります。
read、インタフェース: ImageInputStream-1。IOException - ストリームが閉じられている場合。public int read(byte[] b)
throws IOException
read(b, 0, b.length) を呼び出す簡易メソッドです。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
read、インタフェース: ImageInputStreamb - 書き込まれるバイト配列。-1。NullPointerException - b が null の場合。IOException - 入出力エラーが発生した場合。public abstract int read(byte[] b,
int off,
int len)
throws IOException
len バイトを読み込み、b にインデックス off から格納します。ストリームの終わりに達したためにバイトを読み込めない場合は、-1 を返します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットする必要があります。
サブクラスでこのメソッドを実装する必要があります。サブクラス実装で終了する前にストリーム位置を更新します。
read、インタフェース: ImageInputStreamb - 書き込まれるバイト配列。off - 書き込み先の b 内の開始位置。len - 読み込む最大バイト数。-1。IndexOutOfBoundsException - off が負の値の場合、len が負の値の場合、または off + len が b.length より大きい場合。NullPointerException - b が null の場合。IOException - 入出力エラーが発生した場合。public void readBytes(IIOByteBuffer buf, int len) throws IOException
ImageInputStreamlen バイトまでを読み込み、指定された IIOByteBuffer を変更してデータを検出可能なバイト配列、オフセット、および長さを示します。呼び出し側で、IIOByteBuffer で検出されたデータを変更してはいけません。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readBytes、インタフェース: ImageInputStreambuf - 変更される IIOByteBuffer オブジェクト。len - 読み込む最大 byte 数。IOException - 入出力エラーが発生した場合。public boolean readBoolean()
throws IOException
ImageInputStreamtrue の boolean 値を返し、0 の場合は false を返します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readBoolean、インタフェース: DataInputreadBoolean、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。public byte readByte()
throws IOException
ImageInputStreambyte 値として返します。0x00 から 0x7f までのバイト値は 0 から 127 までの整数を表します。0x80 から 0xff までの値は -128 から /1 までの負の値を表します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readByte、インタフェース: DataInputreadByte、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。public int readUnsignedByte()
throws IOException
ImageInputStream0xff でマスクして、byte 値として返します。
したがって、0x00 から 0x7f までのバイト値は 0 から 127 までの整数値として単純に返されます。通常は負の byte 値を表す 0x80 から 0xff までの値は、128 から 255 までの正の整数に対応付けされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readUnsignedByte、インタフェース: DataInputreadUnsignedByte、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。public short readShort()
throws IOException
ImageInputStreamshort 値として返します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readShort、インタフェース: DataInputreadShort、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。ImageInputStream.getByteOrder()public int readUnsignedShort()
throws IOException
ImageInputStreamint に変換して、符号拡張ビットを取り除くために 0xffff でマスクします。その結果を符号なし int 値として返します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readUnsignedShort、インタフェース: DataInputreadUnsignedShort、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。ImageInputStream.getByteOrder()public char readChar()
throws IOException
ImageInputStreamreadUnsignedShort と同等、ただし結果は char データ型を使用して返されます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readChar、インタフェース: DataInputreadChar、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。ImageInputStream.readUnsignedShort()public int readInt()
throws IOException
ImageInputStreamint 値として返します。
ストリーム内のビットオフセットは無視され、0 として扱われます。
readInt、インタフェース: DataInputreadInt、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。ImageInputStream.getByteOrder()public long readUnsignedInt()
throws IOException
ImageInputStream0xffffffffL でマスクします。その結果を符号なし long 値として返します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readUnsignedInt、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。ImageInputStream.getByteOrder()public long readLong()
throws IOException
ImageInputStreamlong 値として返します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readLong、インタフェース: DataInputreadLong、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。ImageInputStream.getByteOrder()public float readFloat()
throws IOException
ImageInputStreamfloat 値として返します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFloat、インタフェース: DataInputreadFloat、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。ImageInputStream.getByteOrder()public double readDouble()
throws IOException
ImageInputStreamdouble 値として返します。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readDouble、インタフェース: DataInputreadDouble、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。ImageInputStream.getByteOrder()public String readLine() throws IOException
ImageInputStreamString として返されます。このメソッドはバイトを処理するものなので、Unicode 文字セットの入力を完全にはサポートしません。
ファイルの終わりが検出されるまでに 1 バイトも読み込めなかった場合には、null が返されます。それ以外の場合、読み込まれた各バイトはゼロ拡張によって char 型に変換されます。文字 '\n' が検出されると、この文字は破棄され、読み込みは中止されます。文字 '\r' が検出されると、この文字は破棄され、その次のバイトが文字 '\n' に変換されますが、この文字も破棄されて、読み込みが中止されます。文字 '\n' と文字 '\r' のどちらかより前にファイルの終わりが検出されると、読み込みが中止されます。読み込みが中止されると、読み込まれて破棄されていないすべての文字を取り込んだ順番で格納している String が返されます。この文字列のそれぞれの文字は \u0100、つまり (char)256 より小さい値を持ちます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readLine、インタフェース: DataInputreadLine、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。public String readUTF() throws IOException
ImageInputStreamreadUTF の汎用規約では、修正 UTF-8 形式でエンコードされた Unicode 文字列の表現を読み込みます。読み込まれた文字列は、String として返されます。
まず、2 バイトを読み込み、それを使って readUnsignedShort メソッドとまったく同じ方法で符号なし 16 ビット整数を作成します。この際、現在のバイト順の設定に関係なくネットワークバイト順を使用します。この整数値は UTF 長と呼ばれ、読み込まれる追加のバイト数を表します。次に、このバイトがグループ単位で文字に変換されます。各グループの長さは、グループの先頭バイトの値から計算されます。グループに後続のバイトがあれば、それは次のグループの先頭バイトです。
グループの先頭バイトがビットパターンの 0xxxxxxx (ただし、x は 0 または 1 を意味する) に一致する場合、グループはそのバイトだけで構成されます。バイトはゼロ拡張されて単一の文字を表現します。
グループの先頭バイトがビットパターン 110xxxxx に一致する場合、そのグループはそのバイト a と 2 番目のバイト b から構成されます。バイト b が存在しない場合 (バイト a が読み込まれた最後のバイトだった場合) や、バイト b がビットパターン 10xxxxxx に一致しない場合には、UTFDataFormatException がスローされます。そうでない場合、グループは次の文字に変換されます。
(char)(((a& 0x1F) << 6) | (b & 0x3F))
グループの先頭バイトがビットパターン 1110xxxx に一致する場合、そのグループは先頭バイト a に加えて、2 つのバイト b と c から構成されます。バイト c が存在しない場合 (バイト a が読み込まれた一連のバイトの最後の 2 つに入っていた場合) や、バイト b または c がビットパターン 10xxxxxx に一致しない場合には、UTFDataFormatException がスローされます。そうでない場合、グループは次の文字に変換されます。
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
グループの先頭バイトがパターン 1111xxxx かパターン 10xxxxxx に一致する場合、UTFDataFormatException がスローされます。
この処理全体のどこかでファイルの終わりが検出されると、EOFException がスローされます。
各グループがこの処理で 1 文字に変換されると、対応するグループが入力ストリームから読み込まれたのと同じ順序で各文字が収集され、String を表現します。そして、この String が返されます。
現在のバイト順の設定は無視されます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
注: ここで使用される修正 UTF-8 は標準 UTF-8 と互換性がありません。このため、標準 UTF-8 を使用するイメージ形式の実装ではこのメソッドを使用しないでください。
readUTF、インタフェース: DataInputreadUTF、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。public void readFully(byte[] b,
int off,
int len)
throws IOException
ImageInputStreamlen バイトを読み込み、b にインデックス off から格納します。ストリームの終わりに達すると、EOFException がスローされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFully、インタフェース: DataInputreadFully、インタフェース: ImageInputStreamb - 書き込まれるバイト配列。off - 書き込み先の b 内の開始位置。len - 読み込む最大 byte 数。IOException - 入出力エラーが発生した場合。public void readFully(byte[] b)
throws IOException
ImageInputStreamb.length バイトを読み込み、b にインデックス 0 から格納します。ストリームの終わりに達すると、EOFException がスローされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFully、インタフェース: DataInputreadFully、インタフェース: ImageInputStreamb - byte の配列。IOException - 入出力エラーが発生した場合。public void readFully(short[] s,
int off,
int len)
throws IOException
ImageInputStreamlen バイトの short (符号付き 16 ビット整数) 値を読み込み、それらを s にインデックス off から格納します。ストリームの終わりに達すると、EOFException がスローされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFully、インタフェース: ImageInputStreams - 書き込まれる short 配列。off - 書き込み先の b 内の開始位置。len - 読み込む最大 short 数。IOException - 入出力エラーが発生した場合。public void readFully(char[] c,
int off,
int len)
throws IOException
ImageInputStreamlen バイトの char (符号なし 16 ビット整数) 値を読み込み、それらを c にインデックス off から格納します。ストリームの終わりに達すると、EOFException がスローされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFully、インタフェース: ImageInputStreamc - 書き込まれる char 配列。off - 書き込み先の b 内の開始位置。len - 読み込む最大 char 数。IOException - 入出力エラーが発生した場合。public void readFully(int[] i,
int off,
int len)
throws IOException
ImageInputStreamlen バイトの int (符号付き 32 ビット整数) 値を読み込み、それらを i にインデックス off から格納します。ストリームの終わりに達すると、EOFException がスローされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFully、インタフェース: ImageInputStreami - 書き込まれる int 配列。off - 書き込み先の b 内の開始位置。len - 読み込む最大 int 数。IOException - 入出力エラーが発生した場合。public void readFully(long[] l,
int off,
int len)
throws IOException
ImageInputStreamlen バイトの long (符号付き 64 ビット整数) 値を読み込み、それらを l にインデックス off から格納します。ストリームの終わりに達すると、EOFException がスローされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFully、インタフェース: ImageInputStreaml - 書き込まれる long 配列。off - 書き込み先の b 内の開始位置。len - 読み込む最大 long 数。IOException - 入出力エラーが発生した場合。public void readFully(float[] f,
int off,
int len)
throws IOException
ImageInputStreamlen バイトの float (32 ビット IEEE 単精度浮動小数点数) 値を読み込み、それらを f にインデックス off から格納します。ストリームの終わりに達すると、EOFException がスローされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFully、インタフェース: ImageInputStreamf - 書き込まれる float 配列。off - 書き込み先の b 内の開始位置。len - 読み込む最大 float 数。IOException - 入出力エラーが発生した場合。public void readFully(double[] d,
int off,
int len)
throws IOException
ImageInputStreamlen バイトの double (64 ビット IEEE 倍精度浮動小数点数) 値を読み込み、それらを d にインデックス off から格納します。ストリームの終わりに達すると、EOFException がスローされます。
ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。
readFully、インタフェース: ImageInputStreamd - 書き込まれる double 配列。off - 書き込み先の b 内の開始位置。len - 読み込む最大 double 数。IOException - 入出力エラーが発生した場合。public long getStreamPosition()
throws IOException
ImageInputStreamgetStreamPosition、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。public int getBitOffset()
throws IOException
ImageInputStreamreadBits メソッドの呼び出しで暗黙的に更新されます。値 0 は読み込まれるバイトの最上位ビット、値 7 は最下位ビットを示します。
ビットオフセットは、ストリームを最初に開くときに 0 に設定され、seek、skipBytes、または read か readFully メソッドのいずれかが呼び出されると 0 にリセットされます。
getBitOffset、インタフェース: ImageInputStreamint。IOException - 入出力エラーが発生した場合。ImageInputStream.setBitOffset(int)public void setBitOffset(int bitOffset)
throws IOException
ImageInputStreamgetStreamPosition から返される、ストリーム内のバイトオフセットは変更されません。値 0 は読み込まれるバイトの最上位ビット、値 7 は最下位ビットを示します。setBitOffset、インタフェース: ImageInputStreambitOffset - 目的のオフセットで、0 から 7 までの int。IOException - 入出力エラーが発生した場合。ImageInputStream.getBitOffset()public int readBit()
throws IOException
ImageInputStream0 または 1 の int として返します。ビットオフセットは 1 ずつ増加し、8 を法として減分します。readBit、インタフェース: ImageInputStream0 または 1 の int。IOException - 入出力エラーが発生した場合。public long readBits(int numBits)
throws IOException
ImageInputStreamlong として返します。読み込んだ最初のビットが出力の最上位ビットになります。読み込みは、getStreamPosition で指定されるバイト内の getBitOffset で指定されるビット位置から開始されます。ビットオフセットは numBits だけ増加し、8 を法として減分します。
ストリームのバイト順はこのメソッドに影響しません。このメソッドの戻り値はビットが同時に読み込まれたかのように構築され、戻り値の右側にシフトされます。これを次の擬似コードで示します。
long accum = 0L;
for (int i = 0; i < numBits; i++) {
accum <<= 1; // Shift left one bit to make room
accum |= readBit();
}
したがって、逆ネットワークバイト順が使用されている場合 (つまり、getByteOrder() == false)、readBits(32) の結果が readInt() の結果と異なる場合があります。
すべてのビットを読み込む前にストリームの終わりを検出した場合、EOFException がスローされます。
readBits、インタフェース: ImageInputStreamnumBits - 読み込むビット数を示す 0 から 64 までの int。long のビット列。IOException - 入出力エラーが発生した場合。public long length()
-1L を返します。サブクラスでこのメソッドをオーバーライドして、実際の長さの情報を指定する必要があります。length、インタフェース: ImageInputStreampublic int skipBytes(int n)
throws IOException
seek(getStreamPosition() + n) を呼び出して、現在のストリーム位置を前進させます。
ビットオフセットは 0 にリセットされます。
skipBytes、インタフェース: DataInputskipBytes、インタフェース: ImageInputStreamn - 前方にシークするバイト数。int。IOException - 開始または終了位置を計算する際に getStreamPosition が IOException をスローする場合。public long skipBytes(long n)
throws IOException
seek(getStreamPosition() + n) を呼び出して、現在のストリーム位置を前進させます。
ビットオフセットは 0 にリセットされます。
skipBytes、インタフェース: ImageInputStreamn - 前方にシークするバイト数。long。IOException - 開始または終了位置を計算する際に getStreamPosition が IOException をスローする場合。public void seek(long pos)
throws IOException
ImageInputStream pos が getflushedPosition から返されるフラッシュ位置よりも小さい場合は、IndexOutOfBoundsException がスローされます。
シークでファイルの終わりを通過することは正常であり、EOFException は読み込みの場合のみスローされます。
seek、インタフェース: ImageInputStreampos - 目的のファイルポインタ位置を示す long。IOException - その他の入出力エラーが発生した場合。public void mark()
mark、インタフェース: ImageInputStreampublic void reset()
throws IOException
以前にマーク付けされた位置がストリームの破棄された部分である場合には IOException がスローされます。
reset、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。public void flushBefore(long pos)
throws IOException
ImageInputStreamIndexOutOfBoundsException がスローされます。
flushBefore を呼び出すと、このインタフェースを実装するクラスが、ストリームからデータを格納するのに使用するメモリーやディスクスペースなどのリソースを解放できます。
flushBefore、インタフェース: ImageInputStreampos - フラッシュされるストリーム接頭辞の長さを示す long。IOException - 入出力エラーが発生した場合。public void flush()
throws IOException
ImageInputStreamflushBefore(getStreamPosition()) と同等です。flush、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。public long getFlushedPosition()
ImageInputStreamflushBefore 呼び出しに渡されたすべての値の最大値になります。getFlushedPosition、インタフェース: ImageInputStreamlong。public boolean isCached()
isCached、インタフェース: ImageInputStreamImageInputStream がデータをキャッシュに格納する場合は true。ImageInputStream.isCachedMemory(), ImageInputStream.isCachedFile()public boolean isCachedMemory()
isCachedMemory、インタフェース: ImageInputStreamImageInputStream がデータをメインメモリーにキャッシュする場合は true。ImageInputStream.isCached(), ImageInputStream.isCachedFile()public boolean isCachedFile()
isCachedFile、インタフェース: ImageInputStreamImageInputStream がデータを一時ファイルにキャッシュする場合は true。ImageInputStream.isCached(), ImageInputStream.isCachedMemory()public void close()
throws IOException
ImageInputStreamIOException がスローされるか不正な動作が実行される場合があります。このメソッドを呼び出すと、このインタフェースを実装するクラスが、メモリー、ディスクスペース、またはファイル記述子などのストリームに関連するリソースを解放できます。close、インタフェース: Closeableclose、インタフェース: AutoCloseableclose、インタフェース: ImageInputStreamIOException - 入出力エラーが発生した場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.