public abstract class ImageInputStreamImpl extends Object implements ImageInputStream
ImageInputStream
インタフェースを実装する抽象クラスです。このクラスの目的は、サブクラスで実装する必要のあるメソッドの数を減らすことです。
特に、このクラスはバイト順の解釈、バッファリング、マーク付けとリセット、破棄、クローズ、および廃棄の大半またはすべてを処理します。
修飾子と型 | フィールドと説明 |
---|---|
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
、インタフェース: ImageInputStream
byteOrder
- ByteOrder.BIG_ENDIAN
またはjava.nio.ByteOrder.LITTLE_ENDIAN
のいずれか(今後の読込みでネットワーク・バイト順またはその逆順のどちらを使用するかを示す)。ByteOrder
, ImageInputStream.getByteOrder()
, ImageInputStream.readBits(int)
public ByteOrder getByteOrder()
ImageInputStream
java.nio.ByteOrder
列挙のインスタンスとして返します。getByteOrder
、インタフェース: ImageInputStream
ByteOrder.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
、インタフェース: ImageInputStream
b
- 書き込まれるバイト配列。-1
。NullPointerException
- b
がnull
の場合。IOException
- 入出力エラーが発生した場合。public abstract int read(byte[] b, int off, int len) throws IOException
len
バイトを読み込み、b
にインデックスoff
から格納します。ストリームの終わりに達したためにバイトを読み込めない場合は、-1
を返します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットする必要があります。
サブクラスでこのメソッドを実装する必要があります。サブクラス実装で終了する前にストリーム位置を更新します。
read
、インタフェース: ImageInputStream
b
- 書き込まれるバイト配列。off
- 書込み先のb
内の開始位置。len
- 読み込む最大バイト数。-1
。IndexOutOfBoundsException
- off
が負の値の場合、len
が負の値の場合、またはoff+len
がb.length
より大きい場合。NullPointerException
- b
がnull
の場合。IOException
- 入出力エラーが発生した場合。public void readBytes(IIOByteBuffer buf, int len) throws IOException
ImageInputStream
len
バイトまでを読み込み、指定されたIIOByteBuffer
を変更してデータを検出可能なバイト配列、オフセット、および長さを示します。呼出し側で、IIOByteBuffer
で検出されたデータを変更してはいけません。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readBytes
、インタフェース: ImageInputStream
buf
- 変更されるIIOByteBufferオブジェクト。len
- 読み込む最大byte
数。IOException
- 入出力エラーが発生した場合。public boolean readBoolean() throws IOException
ImageInputStream
true
のboolean
値を返し、0の場合はfalse
を返します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readBoolean
、インタフェース: DataInput
readBoolean
、インタフェース: ImageInputStream
EOFException
- ストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public byte readByte() throws IOException
ImageInputStream
byte
値として返します。0x00
から0x7f
までのバイト値は0
から127
までの整数を表します。0x80
から0xff
までの値は-128
から/1
までの負の値を表します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readByte
、インタフェース: DataInput
readByte
、インタフェース: ImageInputStream
EOFException
- ストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public int readUnsignedByte() throws IOException
ImageInputStream
0xff
でマスクして、byte
値として返します。
したがって、0x00
から0x7f
までのバイト値は0
から127
までの整数値として単純に返されます。通常は負のbyte
値を表す0x80
から0xff
までの値は、128
から255
までの正の整数に対応付けされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readUnsignedByte
、インタフェース: DataInput
readUnsignedByte
、インタフェース: ImageInputStream
EOFException
- ストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public short readShort() throws IOException
ImageInputStream
short
値として返します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readShort
、インタフェース: DataInput
readShort
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。ImageInputStream.getByteOrder()
public int readUnsignedShort() throws IOException
ImageInputStream
int
に変換して、符号拡張ビットを取り除くために0xffff
でマスクします。その結果を符号なしint
値として返します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readUnsignedShort
、インタフェース: DataInput
readUnsignedShort
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。ImageInputStream.getByteOrder()
public char readChar() throws IOException
ImageInputStream
readUnsignedShort
と同等、ただし結果はchar
データ型を使用して返されます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readChar
、インタフェース: DataInput
readChar
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。ImageInputStream.readUnsignedShort()
public int readInt() throws IOException
ImageInputStream
int
値として返します。
ストリーム内のビット・オフセットは無視され、0として扱われます。
readInt
、インタフェース: DataInput
readInt
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。ImageInputStream.getByteOrder()
public long readUnsignedInt() throws IOException
ImageInputStream
0xffffffffL
でマスクします。その結果を符号なしlong
値として返します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readUnsignedInt
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。ImageInputStream.getByteOrder()
public long readLong() throws IOException
ImageInputStream
long
値として返します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readLong
、インタフェース: DataInput
readLong
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。ImageInputStream.getByteOrder()
public float readFloat() throws IOException
ImageInputStream
float
値として返します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFloat
、インタフェース: DataInput
readFloat
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。ImageInputStream.getByteOrder()
public double readDouble() throws IOException
ImageInputStream
double
値として返します。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readDouble
、インタフェース: DataInput
readDouble
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。ImageInputStream.getByteOrder()
public String readLine() throws IOException
ImageInputStream
String
として返されます。このメソッドはバイトを処理するものなので、Unicode文字セットの入力を完全にはサポートしません。
ファイルの終わりが検出されるまでに1バイトも読み込めなかった場合には、null
が返されます。それ以外の場合、読み込まれた各バイトはゼロ拡張によってchar
型に変換されます。文字'\n'
が検出されると、この文字は破棄され、読込みは中止されます。文字'\r'
が検出されると、この文字は破棄され、その次のバイトが文字'\n'
に変換されますが、この文字も破棄されて、読込みが中止されます。文字'\n'
と文字'\r'
のどちらかより前にファイルの終わりが検出されると、読込みが中止されます。読込みが中止されると、読み込まれて破棄されていないすべての文字を取り込んだ順番で格納しているString
が返されます。この文字列のそれぞれの文字は\u0100
、つまり(char)256
より小さい値を持ちます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readLine
、インタフェース: DataInput
readLine
、インタフェース: ImageInputStream
IOException
- 入出力エラーが発生した場合。public String readUTF() throws IOException
ImageInputStream
readUTF
の汎用規約では、修正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
がスローされます。
この処理全体のどこかでファイルの終わりが検出されると、java.io.EOFException
がスローされます。
各グループがこの処理で1文字に変換されると、対応するグループが入力ストリームから読み込まれたのと同じ順序で各文字が収集され、String
を表現します。そして、このStringが返されます。
現在のバイト順の設定は無視されます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
注: ここで使用される修正UTF-8は標準UTF-8と互換性がありません。このため、標準UTF-8を使用するイメージ形式の実装ではこのメソッドを使用しないでください。
readUTF
、インタフェース: DataInput
readUTF
、インタフェース: ImageInputStream
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。UTFDataFormatException
- 文字列中のバイトが、有効な修正UTF-8形式でエンコードされた文字列以外であった場合。IOException
- 入出力エラーが発生した場合。public void readFully(byte[] b, int off, int len) throws IOException
ImageInputStream
len
バイトを読み込み、b
にインデックスoff
から格納します。ストリームの終わりに達すると、java.io.EOFException
がスローされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFully
、インタフェース: DataInput
readFully
、インタフェース: ImageInputStream
b
- 書き込まれるバイト配列。off
- 書込み先のb
内の開始位置。len
- 読み込む最大byte
数。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public void readFully(byte[] b) throws IOException
ImageInputStream
b.length
バイトを読み込み、b
にインデックス0
から格納します。ストリームの終わりに達すると、java.io.EOFException
がスローされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFully
、インタフェース: DataInput
readFully
、インタフェース: ImageInputStream
b
- byte
の配列。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public void readFully(short[] s, int off, int len) throws IOException
ImageInputStream
len
バイトのshort (符号付き16ビット整数)値を読み込み、それらをs
にインデックスoff
から格納します。ストリームの終わりに達すると、java.io.EOFException
がスローされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFully
、インタフェース: ImageInputStream
s
- 書き込まれるshort配列。off
- 書込み先のs
内の開始位置。len
- 読み込む最大short
数。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public void readFully(char[] c, int off, int len) throws IOException
ImageInputStream
len
バイトのchar (符号なし16ビット整数)値を読み込み、それらをc
にインデックスoff
から格納します。ストリームの終わりに達すると、java.io.EOFException
がスローされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFully
、インタフェース: ImageInputStream
c
- 書き込まれるchar配列。off
- 書込み先のc
内の開始位置。len
- 読み込む最大char
数。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public void readFully(int[] i, int off, int len) throws IOException
ImageInputStream
len
バイトのint (符号付き32ビット整数)値を読み込み、それらをi
にインデックスoff
から格納します。ストリームの終わりに達すると、java.io.EOFException
がスローされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFully
、インタフェース: ImageInputStream
i
- 書き込まれるint配列。off
- 書込み先のi
内の開始位置。len
- 読み込む最大int
数。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public void readFully(long[] l, int off, int len) throws IOException
ImageInputStream
len
バイトのlong (符号付き64ビット整数)値を読み込み、それらをl
にインデックスoff
から格納します。ストリームの終わりに達すると、java.io.EOFException
がスローされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFully
、インタフェース: ImageInputStream
l
- 書き込まれるlong配列。off
- 書込み先のl
内の開始位置。len
- 読み込む最大long
数。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public void readFully(float[] f, int off, int len) throws IOException
ImageInputStream
len
バイトのfloat (32ビットIEEE単精度浮動小数点数)値を読み込み、それらをf
にインデックスoff
から格納します。ストリームの終わりに達すると、java.io.EOFException
がスローされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFully
、インタフェース: ImageInputStream
f
- 書き込まれるfloat配列。off
- 書込み先のf
内の開始位置。len
- 読み込む最大float
数。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public void readFully(double[] d, int off, int len) throws IOException
ImageInputStream
len
バイトのdouble (64ビットIEEE倍精度浮動小数点数)値を読み込み、それらをd
にインデックスoff
から格納します。ストリームの終わりに達すると、java.io.EOFException
がスローされます。
ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
readFully
、インタフェース: ImageInputStream
d
- 書き込まれるdouble配列。off
- 書込み先のd
内の開始位置。len
- 読み込む最大double
数。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public long getStreamPosition() throws IOException
ImageInputStream
getStreamPosition
、インタフェース: ImageInputStream
IOException
- 入出力エラーが発生した場合。public int getBitOffset() throws IOException
ImageInputStream
readBits
メソッドの呼出しで暗黙的に更新されます。値0は読み込まれるバイトの最上位ビット、値7は最下位ビットを示します。
ビット・オフセットは、ストリームを最初に開くときに0に設定され、seek
、skipBytes
、またはread
かreadFully
メソッドのいずれかが呼び出されると0にリセットされます。
getBitOffset
、インタフェース: ImageInputStream
int
。IOException
- 入出力エラーが発生した場合。ImageInputStream.setBitOffset(int)
public void setBitOffset(int bitOffset) throws IOException
ImageInputStream
getStreamPosition
から返される、ストリーム内のバイト・オフセットは変更されません。値0は読み込まれるバイトの最上位ビット、値7は最下位ビットを示します。setBitOffset
、インタフェース: ImageInputStream
bitOffset
- 目的のオフセットで、0から7までのint
。IOException
- 入出力エラーが発生した場合。ImageInputStream.getBitOffset()
public int readBit() throws IOException
ImageInputStream
0
または1
のint
として返します。ビット・オフセットは1ずつ増加し、8を法として減分します。readBit
、インタフェース: ImageInputStream
0
または1
のint
。EOFException
- すべてのビットを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public long readBits(int numBits) throws IOException
ImageInputStream
long
として返します。読み込んだ最初のビットが出力の最上位ビットになります。読込みは、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()
の結果と異なる場合があります。
すべてのビットを読み込む前にストリームの終わりを検出した場合、java.io.EOFException
がスローされます。
readBits
、インタフェース: ImageInputStream
numBits
- 読み込むビット数を示す0から64までのint
。long
のビット列。EOFException
- すべてのビットを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。public long length()
-1L
を返します。サブクラスでこのメソッドをオーバーライドして、実際の長さの情報を指定する必要があります。length
、インタフェース: ImageInputStream
public int skipBytes(int n) throws IOException
seek(getStreamPosition()+n)
を呼び出して、現在のストリーム位置を前進させます。
ビット・オフセットは0にリセットされます。
skipBytes
、インタフェース: DataInput
skipBytes
、インタフェース: ImageInputStream
n
- 前方にシークするバイト数。int
。IOException
- 開始または終了位置を計算する際にgetStreamPosition
がIOException
をスローする場合。public long skipBytes(long n) throws IOException
seek(getStreamPosition()+n)
を呼び出して、現在のストリーム位置を前進させます。
ビット・オフセットは0にリセットされます。
skipBytes
、インタフェース: ImageInputStream
n
- 前方にシークするバイト数。long
。IOException
- 開始または終了位置を計算する際にgetStreamPosition
がIOException
をスローする場合。public void seek(long pos) throws IOException
ImageInputStream
pos
がgetflushedPosition
から返されるフラッシュ位置よりも小さい場合は、IndexOutOfBoundsException
がスローされます。
シークでファイルの終わりを通過することは正常であり、java.io.EOFException
は読込みの場合のみスローされます。
seek
、インタフェース: ImageInputStream
pos
- 目的のファイル・ポインタ位置を示すlong
。IOException
- その他の入出力エラーが発生した場合。public void mark()
mark
、インタフェース: ImageInputStream
public void reset() throws IOException
以前にマーク付けされた位置がストリームの破棄された部分である場合にはIOException
がスローされます。
reset
、インタフェース: ImageInputStream
IOException
- 入出力エラーが発生した場合。public void flushBefore(long pos) throws IOException
ImageInputStream
IndexOutOfBoundsException
がスローされます。
flushBefore
を呼び出すと、このインタフェースを実装するクラスが、ストリームからデータを格納するのに使用するメモリーやディスク・スペースなどのリソースを解放できます。
flushBefore
、インタフェース: ImageInputStream
pos
- フラッシュされるストリーム接頭辞の長さを示すlong
。IOException
- 入出力エラーが発生した場合。public void flush() throws IOException
ImageInputStream
flushBefore(getStreamPosition())
と同等です。flush
、インタフェース: ImageInputStream
IOException
- 入出力エラーが発生した場合。public long getFlushedPosition()
ImageInputStream
flushBefore
呼出しに渡されたすべての値の最大値になります。getFlushedPosition
、インタフェース: ImageInputStream
long
。public boolean isCached()
isCached
、インタフェース: ImageInputStream
ImageInputStream
がデータをキャッシュに格納する場合はtrue
。ImageInputStream.isCachedMemory()
, ImageInputStream.isCachedFile()
public boolean isCachedMemory()
isCachedMemory
、インタフェース: ImageInputStream
ImageInputStream
がデータをメイン・メモリーにキャッシュする場合はtrue
。ImageInputStream.isCached()
, ImageInputStream.isCachedFile()
public boolean isCachedFile()
isCachedFile
、インタフェース: ImageInputStream
ImageInputStream
がデータを一時ファイルにキャッシュする場合はtrue
。ImageInputStream.isCached()
, ImageInputStream.isCachedMemory()
public void close() throws IOException
ImageInputStream
IOException
がスローされるか不正な動作が実行される場合があります。このメソッドを呼び出すと、このインタフェースを実装するクラスが、メモリー、ディスク・スペース、またはファイル記述子などのストリームに関連するリソースを解放できます。close
、インタフェース: Closeable
close
、インタフェース: AutoCloseable
close
、インタフェース: ImageInputStream
IOException
- 入出力エラーが発生した場合。protected void finalize() throws Throwable
close
メソッドを呼び出して、開いている入力ソースをすべて閉じます。このメソッドを、アプリケーション・コードから呼び出してはいけません。finalize
、クラス: Object
Throwable
- スーパー・クラスのファイナライズ時にエラーが発生した場合。WeakReference
, PhantomReference
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.