- すべてのスーパー・インタフェース:
AutoCloseable
,Closeable
,DataInput
- 既知のすべてのサブインタフェース:
ImageOutputStream
- 既知のすべての実装クラス:
FileCacheImageInputStream
,FileCacheImageOutputStream
,FileImageInputStream
,FileImageOutputStream
,ImageInputStreamImpl
,ImageOutputStreamImpl
,MemoryCacheImageInputStream
,MemoryCacheImageOutputStream
public interface ImageInputStream extends DataInput, Closeable
ImageReader
で使用されるシーク可能な入力ストリーム・インタフェースです。 InputStream
やFile
などのさまざまな入力ソース、および将来の高速な入出力ソースを、このインタフェースの適切な実装で「ラップ」することで、イメージ入出力APIから使用可能にできます。 -
メソッドのサマリー
修飾子と型 メソッド 説明 void
close()
ストリームを閉じます。void
flush()
現在のストリーム位置より前の初期のストリーム位置を破棄します。void
flushBefore(long pos)
指示された位置より前のストリームの先頭部分を破棄します。int
getBitOffset()
現在のビット・オフセットを0から7までの整数として返します。ByteOrder
getByteOrder()
このストリームから読み込まれるデータのバイト順を、java.nio.ByteOrder
列挙のインスタンスとして返します。long
getFlushedPosition()
シークが実行されるストリーム内の一番初期の位置を返します。long
getStreamPosition()
ストリームの現在のバイト位置を返します。boolean
isCached()
逆シークを可能にするために、このImageInputStream
がデータ自体をキャッシュに格納する場合はtrue
を返します。boolean
isCachedFile()
このImageInputStream
が、逆シークを可能にするためにデータ自体をキャッシュに格納し、キャッシュが一時ファイルに保持される場合はtrue
を返します。boolean
isCachedMemory()
このImageInputStream
が、逆シークを有効にするためにデータ自体をキャッシュに格納し、キャッシュがメイン・メモリーに保持される場合はtrue
を返します。long
length()
既知の場合、ストリームの全長を返します。void
mark()
その後のreset
呼出しで返されるストリーム内の位置をマーク付けします。int
read()
ストリームから1バイトを読み込み、それを0から255までの整数として返します。int
read(byte[] b)
ストリームから最大b.length
バイトを読み込み、b
にインデックス0から格納します。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()
最新の不一致のmark
呼出し時点の、ビット・オフセットを含む以前の位置を指すストリーム・ポインタを返します。void
seek(long pos)
現在のストリーム位置を目的の位置に設定します。void
setBitOffset(int bitOffset)
ビット・オフセットに0から7までの整数を設定します。void
setByteOrder(ByteOrder byteOrder)
このストリームからの今後のデータ値の読込みのために、バイト順を設定します。int
skipBytes(int n)
指定されたバイト数だけストリーム位置を前に移動します。long
skipBytes(long n)
指定されたバイト数だけストリーム位置を前に移動します。
-
メソッドの詳細
-
setByteOrder
void setByteOrder(ByteOrder byteOrder)このストリームからの今後のデータ値の読込みのために、バイト順を設定します。 たとえば、’0x01 0x02 0x03 0x04’のバイト・シーケンスは、4バイト整数として読み込まれた場合、ネットワーク・バイト順を使用すると‘0x01020304’の値となり、逆バイト順では‘0x04030201’の値となります。列挙クラス
java.nio.ByteOrder
を使用してバイト順を指定します。 値ByteOrder.BIG_ENDIAN
では、高位のバイトが先頭となる、いわゆるビッグエンディアン(ネットワーク・バイト順)が指定されます。 MotorolaとSparcプロセッサはデータをこの形式で格納します。一方Intelプロセッサは、データを逆順のByteOrder.LITTLE_ENDIAN
で格納します。バイト順は、
readBits
メソッドから返される結果(ImageOutputStream.writeBits
により書き込まれる値)には影響を与えません。- パラメータ:
byteOrder
-ByteOrder.BIG_ENDIAN
またはjava.nio.ByteOrder.LITTLE_ENDIAN
のいずれか(今後の読込みでネットワーク・バイト順またはその逆順のどちらを使用するかを示す)。- 関連項目:
ByteOrder
,getByteOrder()
,readBits(int)
-
getByteOrder
ByteOrder getByteOrder()このストリームから読み込まれるデータのバイト順を、java.nio.ByteOrder
列挙のインスタンスとして返します。- 戻り値:
ByteOrder.BIG_ENDIAN
またはByteOrder.LITTLE_ENDIAN
のいずれか(使用されるバイト順を示す)。- 関連項目:
ByteOrder
,setByteOrder(java.nio.ByteOrder)
-
read
int read() throws IOExceptionストリームから1バイトを読み込み、それを0から255までの整数として返します。 ストリームの終わりに達すると -1を返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 戻り値:
- ストリームからのバイト値(int)、または -1 (EOFを示す)
- 例外:
IOException
- 入出力エラーが発生した場合。
-
read
int read(byte[] b) throws IOExceptionストリームから最大b.length
バイトを読み込み、b
にインデックス0から格納します。 読み込んだバイト数を返します。 ストリームの終わりに達したためにバイトを読み込めない場合は、-1を返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
b
- 書き込まれるバイト配列。- 戻り値:
- 実際に読み込まれたバイト数、またはEOFを示す
-1
。 - 例外:
NullPointerException
-b
がnull
である場合。IOException
- 入出力エラーが発生した場合。
-
read
int read(byte[] b, int off, int len) throws IOExceptionストリームから最大len
バイトを読み込み、b
にインデックスoff
から格納します。 読み込んだバイト数を返します。 ストリームの終わりに達したためにバイトを読み込めない場合は、-1
を返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
b
- 書き込まれるバイト配列。off
- 書込み先のb
内の開始位置。len
- 読み込む最大byte
数。- 戻り値:
- 実際に読み込まれたバイト数、またはEOFを示す
-1
。 - 例外:
NullPointerException
-b
がnull
である場合。IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、またはoff+len
がb.length
より大きい場合。IOException
- 入出力エラーが発生した場合。
-
readBytes
void readBytes(IIOByteBuffer buf, int len) throws IOExceptionストリームからlen
バイトまでを読み込み、指定されたIIOByteBuffer
を変更してデータを検出可能なバイト配列、オフセット、および長さを示します。 呼出し側で、IIOByteBuffer
で検出されたデータを変更してはいけません。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
buf
- 変更されるIIOByteBufferオブジェクト。len
- 読み込む最大byte
数。- 例外:
IndexOutOfBoundsException
-len
が負の値の場合。NullPointerException
-buf
がnull
の場合。IOException
- 入出力エラーが発生した場合。
-
readBoolean
boolean readBoolean() throws IOExceptionストリームから1バイトを読み込み、0でない場合はtrue
のboolean
値を返し、0の場合はfalse
を返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readBoolean
、インタフェース:DataInput
- 戻り値:
- ストリームからのboolean値
- 例外:
EOFException
- ストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readByte
byte readByte() throws IOExceptionストリームから1バイトを読み込み、それをbyte
値として返します。0x00
から0x7f
までのバイト値は0
から127
までの整数を表します。0x80
から0xff
までの値は-128
から/1
までの負の値を表します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readByte
、インタフェース:DataInput
- 戻り値:
- ストリームからの符号付きバイト値
- 例外:
EOFException
- ストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readUnsignedByte
int readUnsignedByte() throws IOExceptionストリームからバイトを読み込んで、概念上、整数に変換し、符号拡張ビットを取り除くためにそれを0xff
でマスクして、byte
値として返します。したがって、
0x00
から0x7f
までのバイト値は0
から127
までの整数値として単純に返されます。 通常は負のbyte
値を表す0x80
から0xff
までの値は、128
から255
までの正の整数に対応付けされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readUnsignedByte
、インタフェース:DataInput
- 戻り値:
- ストリームからの符号なしバイト値
- 例外:
EOFException
- ストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readShort
short readShort() throws IOExceptionストリームから2バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をshort
値として返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readShort
、インタフェース:DataInput
- 戻り値:
- ストリームからの符号付きshort値
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
getByteOrder()
-
readUnsignedShort
int readUnsignedShort() throws IOExceptionストリームから2バイトを読み込んで、現在のバイト順に従って概念上それらを連結し、結果として得られる値をint
に変換して、符号拡張ビットを取り除くために0xffff
でマスクします。その結果を符号なしint
値として返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readUnsignedShort
、インタフェース:DataInput
- 戻り値:
- ストリームからの符号なしshort値のint
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
getByteOrder()
-
readChar
char readChar() throws IOExceptionreadUnsignedShort
と同等、ただし結果はchar
データ型を使用して返されます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readChar
、インタフェース:DataInput
- 戻り値:
- ストリームからの符号なしchar値
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
readUnsignedShort()
-
readInt
int readInt() throws IOExceptionストリームから4バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をint
値として返します。ストリーム内のビット・オフセットは無視され、0として扱われます。
- 定義:
readInt
、インタフェース:DataInput
- 戻り値:
- ストリームからの符号付きint値
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
getByteOrder()
-
readUnsignedInt
long readUnsignedInt() throws IOExceptionストリームから4バイトを読み込んで現在のバイト順に従って概念上それらを連結し、結果の値をlongに変換して、符号拡張ビットを取り除くために0xffffffffL
でマスクします。その結果を符号なしlong
値として返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 戻り値:
- ストリームからの符号なしint値(long)
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
getByteOrder()
-
readLong
long readLong() throws IOExceptionストリームから8バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をlong
値として返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readLong
、インタフェース:DataInput
- 戻り値:
- ストリームからの符号付きlong値
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
getByteOrder()
-
readFloat
float readFloat() throws IOExceptionストリームから4バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をfloat
値として返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readFloat
、インタフェース:DataInput
- 戻り値:
- ストリームからのfloat値
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
getByteOrder()
-
readDouble
double readDouble() throws IOExceptionストリームから8バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果をdouble
値として返します。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readDouble
、インタフェース:DataInput
- 戻り値:
- ストリームからのdouble値
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
getByteOrder()
-
readLine
String readLine() throws IOException入力ストリームから、次の行のテキストを読み込みます。 このメソッドは、行末記号またはファイルの終わりを検出するまで、連続するバイトを読み込んで、各バイトをそれぞれ文字に変換します。読み込まれた文字は次に、String
として返されます。 このメソッドはバイトを処理するものなので、Unicode文字セットの入力を完全にはサポートしません。ファイルの終わりが検出されるまでに1バイトも読み込めなかった場合には、
null
が返されます。 それ以外の場合、読み込まれた各バイトはゼロ拡張によってchar
型に変換されます。 文字'\n'
が検出されると、この文字は破棄され、読込みは中止されます。 文字'\r'
が検出されると、この文字は破棄され、その次のバイトが文字'\n'
に変換されますが、この文字も破棄されて、読込みが中止されます。 文字'\n'
と文字'\r'
のどちらかより前にファイルの終わりが検出されると、読込みが中止されます。 読込みが中止されると、読み込まれて破棄されていないすべての文字を取り込んだ順番で格納しているString
が返されます。 この文字列のそれぞれの文字は\u0100
、つまり(char)256
より小さい値を持ちます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readLine
、インタフェース:DataInput
- 戻り値:
- ストリームからのテキスト行を含むString
- 例外:
IOException
- 入出力エラーが発生した場合。
-
readUTF
String readUTF() throws IOException修正UTF-8形式でエンコードされた文字列を読み込みます。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
- 戻り値:
- ストリームから読み込まれたString
- 例外:
EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。UTFDataFormatException
- 文字列中のバイトが、有効な修正UTF-8形式でエンコードされた文字列以外であった場合。IOException
- 入出力エラーが発生した場合。
-
readFully
void readFully(byte[] b, int off, int len) throws IOExceptionストリームからlen
バイトを読み込み、b
にインデックスoff
から格納します。 ストリームの終わりに達すると、java.io.EOFException
がスローされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readFully
、インタフェース:DataInput
- パラメータ:
b
- 書き込まれるバイト配列。off
- 書込み先のb
内の開始位置。len
- 読み込む最大byte
数。- 例外:
IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、またはoff+len
がb.length
より大きい場合。NullPointerException
-b
がnull
である場合。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readFully
void readFully(byte[] b) throws IOExceptionストリームからb.length
バイトを読み込み、b
にインデックス0
から格納します。 ストリームの終わりに達すると、java.io.EOFException
がスローされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- 定義:
readFully
、インタフェース:DataInput
- パラメータ:
b
-byte
の配列。- 例外:
NullPointerException
-b
がnull
である場合。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readFully
void readFully(short[] s, int off, int len) throws IOExceptionストリームから現在のバイト順に従ってlen
バイトのshort (符号付き16ビット整数)値を読み込み、それらをs
にインデックスoff
から格納します。 ストリームの終わりに達すると、java.io.EOFException
がスローされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
s
- 書き込まれるshort配列。off
- 書込み先のs
内の開始位置。len
- 読み込む最大short
数。- 例外:
IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、またはoff+len
がs.length
より大きい場合。NullPointerException
-s
がnull
の場合。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readFully
void readFully(char[] c, int off, int len) throws IOExceptionストリームから現在のバイト順に従ってlen
バイトのchar (符号なし16ビット整数)値を読み込み、それらをc
にインデックスoff
から格納します。 ストリームの終わりに達すると、java.io.EOFException
がスローされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
c
- 書き込まれるchar配列。off
- 書込み先のc
内の開始位置。len
- 読み込む最大char
数。- 例外:
IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、またはoff+len
がc.length
より大きい場合。NullPointerException
-c
がnull
の場合。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readFully
void readFully(int[] i, int off, int len) throws IOExceptionストリームから現在のバイト順に従ってlen
バイトのint (符号付き32ビット整数)値を読み込み、それらをi
にインデックスoff
から格納します。 ストリームの終わりに達すると、java.io.EOFException
がスローされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
i
- 書き込まれるint配列。off
- 書込み先のi
内の開始位置。len
- 読み込む最大int
数。- 例外:
IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、またはoff+len
がi.length
より大きい場合。NullPointerException
-i
がnull
の場合。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readFully
void readFully(long[] l, int off, int len) throws IOExceptionストリームから現在のバイト順に従ってlen
バイトのlong (符号付き64ビット整数)値を読み込み、それらをl
にインデックスoff
から格納します。 ストリームの終わりに達すると、java.io.EOFException
がスローされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
l
- 書き込まれるlong配列。off
- 書込み先のl
内の開始位置。len
- 読み込む最大long
数。- 例外:
IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、またはoff+len
がl.length
より大きい場合。NullPointerException
-l
がnull
の場合。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readFully
void readFully(float[] f, int off, int len) throws IOExceptionストリームから現在のバイト順に従ってlen
バイトのfloat (32ビットIEEE単精度浮動小数点数)値を読み込み、それらをf
にインデックスoff
から格納します。 ストリームの終わりに達すると、java.io.EOFException
がスローされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
f
- 書き込まれるfloat配列。off
- 書込み先のf
内の開始位置。len
- 読み込む最大float
数。- 例外:
IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、またはoff+len
がf.length
より大きい場合。NullPointerException
-f
がnull
の場合。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readFully
void readFully(double[] d, int off, int len) throws IOExceptionストリームから現在のバイト順に従ってlen
バイトのdouble (64ビットIEEE倍精度浮動小数点数)値を読み込み、それらをd
にインデックスoff
から格納します。 ストリームの終わりに達すると、java.io.EOFException
がスローされます。ストリーム内のビット・オフセットは、読込みを行う前に0にリセットされます。
- パラメータ:
d
- 書き込まれるdouble配列。off
- 書込み先のd
内の開始位置。len
- 読み込む最大double
数。- 例外:
IndexOutOfBoundsException
-off
が負の値の場合、len
が負の値の場合、またはoff+len
がd.length
より大きい場合。NullPointerException
-d
がnull
の場合。EOFException
- すべてのバイトを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
getStreamPosition
long getStreamPosition() throws IOExceptionストリームの現在のバイト位置を返します。 次の読込みはこのオフセットから開始されます。- 戻り値:
- ストリームの位置を含むlong
- 例外:
IOException
- 入出力エラーが発生した場合。
-
getBitOffset
int getBitOffset() throws IOException現在のビット・オフセットを0から7までの整数として返します。 ビット・オフセットは、readBits
メソッドの呼出しで暗黙的に更新されます。 値0は読み込まれるバイトの最上位ビット、値7は最下位ビットを示します。ビット・オフセットは、ストリームを最初に開くときに0に設定され、
seek
、skipBytes
、またはread
かreadFully
メソッドのいずれかが呼び出されると0にリセットされます。- 戻り値:
- 0から7までのオフセット値を含む
int
。 - 例外:
IOException
- 入出力エラーが発生した場合。- 関連項目:
setBitOffset(int)
-
setBitOffset
void setBitOffset(int bitOffset) throws IOExceptionビット・オフセットに0から7までの整数を設定します。getStreamPosition
から返される、ストリーム内のバイト・オフセットは変更されません。 値0は読み込まれるバイトの最上位ビット、値7は最下位ビットを示します。- パラメータ:
bitOffset
- 目的のオフセットで、0から7までのint
。- 例外:
IllegalArgumentException
-bitOffset
が0から7の範囲内にない場合。IOException
- 入出力エラーが発生した場合。- 関連項目:
getBitOffset()
-
readBit
int readBit() throws IOExceptionストリームから1ビットを読み込み、それを値0
または1
のint
として返します。 ビット・オフセットは1ずつ増加し、8を法として減分します。- 戻り値:
- 値
0
または1
のint
。 - 例外:
EOFException
- すべてのビットを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
readBits
long readBits(int numBits) throws IOExceptionストリームからビット列を読み込み、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
がスローされます。- パラメータ:
numBits
- 読み込むビット数を示す0から64までのint
。- 戻り値:
- 最後に読み込んだビットを最下位ビットに格納した
long
のビット列。 - 例外:
IllegalArgumentException
-numBits
が0から64の範囲内にない場合。EOFException
- すべてのビットを読み込む前に、このストリームの終わりに達した場合。IOException
- 入出力エラーが発生した場合。
-
length
long length() throws IOException既知の場合、ストリームの全長を返します。 それ以外の場合は-1
が返されます。- 戻り値:
- 既知の場合はストリームの長さの
long
、そうでない場合は-1
。 - 例外:
IOException
- 入出力エラーが発生した場合。
-
skipBytes
int skipBytes(int n) throws IOException指定されたバイト数だけストリーム位置を前に移動します。 たとえばストリームの終わりに達した場合、このメソッドは要求されたよりも少ないバイト数だけ前にスキップできます。 どの場合でも、実際にスキップされたバイト数が返されます。 位置の前進は、ビット・オフセットが0にリセットされてから行われます。- 定義:
skipBytes
、インタフェース:DataInput
- パラメータ:
n
- スキップするバイト数を含むint
。- 戻り値:
- スキップされたバイト数を示す
int
。 - 例外:
IOException
- 入出力エラーが発生した場合。
-
skipBytes
long skipBytes(long n) throws IOException指定されたバイト数だけストリーム位置を前に移動します。 このメソッドはskipBytes(int)
と同じですが、さらに離れた位置までスキップできます。- パラメータ:
n
- スキップするバイト数を含むlong
。- 戻り値:
- スキップされたバイト数を示す
long
。 - 例外:
IOException
- 入出力エラーが発生した場合。
-
seek
void seek(long pos) throws IOException現在のストリーム位置を目的の位置に設定します。 次回の読込みはこの位置で行われます。 ビット・オフセットは0に設定されます。pos
がgetflushedPosition
から返されるフラッシュ位置よりも小さい場合は、IndexOutOfBoundsException
がスローされます。ファイルの最後を追い抜くことは合法です。
java.io.EOFException
は、読み取りが実行された場合にのみスローされます。- パラメータ:
pos
- 目的のファイル・ポインタ位置を示すlong
。- 例外:
IndexOutOfBoundsException
-pos
がフラッシュ位置よりも小さい場合。IOException
- その他の入出力エラーが発生した場合。
-
mark
void mark()その後のreset
呼出しで返されるストリーム内の位置をマーク付けします。 標準のInputStream
とは異なり、ImageInputStream
はすべてマーク付けをサポートします。 さらに、mark
とreset
の呼出しは、任意にネスト化することができます。Reader
およびInputStream
インタフェースで宣言されるmark
メソッドとは異なり、readLimit
パラメータは使用されません。mark
の呼出しに続いて任意のデータ量を読み込むことができます。readBits
メソッドで使用されるビット位置は保存され、mark
とreset
をペアで呼び出すたびに復元されます。ImageReader
は、読込み操作の一部としてflushBefore
を呼び出すことができることに留意してください。 このため、アプリケーションがストリームをImageReader
に渡す前にmark
を呼び出す場合、読込み操作が完了したあともマーク位置が有効であると考えるべきではありません。 -
reset
void reset() throws IOException最新の不一致のmark
呼出し時点の、ビット・オフセットを含む以前の位置を指すストリーム・ポインタを返します。対応する
mark
を呼び出さずにreset
を呼び出す場合には影響ありません。以前にマーク付けされた位置がストリームの破棄された部分である場合には
IOException
がスローされます。- 例外:
IOException
- 入出力エラーが発生した場合。
-
flushBefore
void flushBefore(long pos) throws IOException指示された位置より前のストリームの先頭部分を破棄します。 ストリームのフラッシュされた部分内のオフセットにシークしようとすると、IndexOutOfBoundsException
がスローされます。flushBefore
を呼び出すと、このインタフェースを実装するクラスが、ストリームからデータを格納するのに使用するメモリーやディスク・スペースなどのリソースを解放できます。- パラメータ:
pos
- フラッシュされるストリーム接頭辞の長さを示すlong
。- 例外:
IndexOutOfBoundsException
-pos
がストリームのフラッシュ部分にあるか、または現在のストリーム位置を通過した場合。IOException
- 入出力エラーが発生した場合。
-
flush
void flush() throws IOException現在のストリーム位置より前の初期のストリーム位置を破棄します。flushBefore(getStreamPosition())
と同等です。- 例外:
IOException
- 入出力エラーが発生した場合。
-
getFlushedPosition
long getFlushedPosition()シークが実行されるストリーム内の一番初期の位置を返します。 戻り値は、以前のflushBefore
呼出しに渡されたすべての値の最大値になります。- 戻り値:
- 一番初期の正当なシーク位置を示す
long
。
-
isCached
boolean isCached()逆シークを可能にするために、このImageInputStream
がデータ自体をキャッシュに格納する場合はtrue
を返します。 アプリケーションはキャッシュ・リソースを節約するために、これを参照してフラッシュの頻度、またはフラッシュするかどうかを決定できます。- 戻り値:
- この
ImageInputStream
がデータをキャッシュに格納する場合はtrue
。 - 関連項目:
isCachedMemory()
,isCachedFile()
-
isCachedMemory
boolean isCachedMemory()このImageInputStream
が、逆シークを有効にするためにデータ自体をキャッシュに格納し、キャッシュがメイン・メモリーに保持される場合はtrue
を返します。 アプリケーションはキャッシュ・リソースを節約するために、これを参照してフラッシュの頻度、またはフラッシュするかどうかを決定できます。- 戻り値:
- この
ImageInputStream
がデータをメイン・メモリーにキャッシュする場合はtrue
。 - 関連項目:
isCached()
,isCachedFile()
-
isCachedFile
boolean isCachedFile()このImageInputStream
が、逆シークを可能にするためにデータ自体をキャッシュに格納し、キャッシュが一時ファイルに保持される場合はtrue
を返します。 アプリケーションはキャッシュ・リソースを節約するために、これを参照してフラッシュの頻度、またはフラッシュするかどうかを決定できます。- 戻り値:
- この
ImageInputStream
がデータを一時ファイルにキャッシュする場合はtrue
。 - 関連項目:
isCached()
,isCachedMemory()
-
close
void close() throws IOExceptionストリームを閉じます。 閉じたストリームにアクセスしようとすると、IOException
がスローされるか不正な動作が実行される場合があります。 このメソッドを呼び出すと、このインタフェースを実装するクラスが、メモリー、ディスク・スペース、またはファイル記述子などのストリームに関連するリソースを解放できます。- 定義:
close
、インタフェース:AutoCloseable
- 定義:
close
、インタフェース:Closeable
- 例外:
IOException
- 入出力エラーが発生した場合。
-