JavaTM 2 Platform
Standard Ed. 5.0

javax.imageio.stream
インタフェース ImageInputStream

すべてのスーパーインタフェース:
DataInput
既知のサブインタフェースの一覧:
ImageOutputStream
既知の実装クラスの一覧:
FileCacheImageInputStream, FileCacheImageOutputStream, FileImageInputStream, FileImageOutputStream, ImageInputStreamImpl, ImageOutputStreamImpl, MemoryCacheImageInputStream, MemoryCacheImageOutputStream

public interface ImageInputStream
extends DataInput

ImageReader で使用されるシーク可能な入力ストリームインタフェースです。InputStream や File などのさまざまな入力ソース、および将来の高速な入出力ソースを、このインタフェースの適切な実装で「ラップ」することで、イメージ入出力 API から使用可能にできます。

関連項目:
ImageInputStreamImpl, FileImageInputStream, FileCacheImageInputStream, MemoryCacheImageInputStream

メソッドの概要
 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 でマスクします。
 int readUnsignedShort()
          ストリームから 2 バイトを読み込んで、現在のバイト順に従って概念上それらを連結し、結果の値を int に変換して、符号拡張ビットを取り除くために 0xffff でマスクします。
 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’ のバイトシーケンスは、ネットワークバイト順を使用すると ‘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 にリセットされます。

定義:
インタフェース DataInput 内の readBoolean
戻り値:
ストリームからの boolean 値
例外:
EOFException - ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readByte

byte readByte()
              throws IOException
ストリームから 1 バイトを読み込み、それを byte 値として返します。0x00 から 0x7f までのバイト値は 0 から 127 までの整数を表します。0x80 から 0xff までの値は -128 から -1 までの負の値を表します。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readByte
戻り値:
ストリームからの符号付きバイト値
例外:
EOFException - ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readUnsignedByte

int readUnsignedByte()
                     throws IOException
ストリームからバイトを読み込んで、概念上、整数に変換し、符号拡張ビットを取り除くためにそれを 0xff でマスクして、byte 値として返します。

したがって、0x00 から 0x7f までのバイト値は 0 から 127 までの整数値として単純に返されます。通常は負の byte 値を表す 0x80 から 0xff までの値は、128 から 255 までの正の整数に対応付けされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readUnsignedByte
戻り値:
ストリームからの符号なしバイト値
例外:
EOFException - ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readShort

short readShort()
                throws IOException
ストリームから 2 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を short 値として返します。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readShort
戻り値:
ストリームからの符号付き short 値
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
getByteOrder()

readUnsignedShort

int readUnsignedShort()
                      throws IOException
ストリームから 2 バイトを読み込んで、現在のバイト順に従って概念上それらを連結し、結果の値を int に変換して、符号拡張ビットを取り除くために 0xffff でマスクします。その結果を符号なし int 値として返します。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readUnsignedShort
戻り値:
ストリームからの符号なし short 値 の int
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
getByteOrder()

readChar

char readChar()
              throws IOException
readUnsignedShort と同等、ただし結果は char データ型を使用して返されます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readChar
戻り値:
ストリームからの符号なし char 値
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
readUnsignedShort()

readInt

int readInt()
            throws IOException
ストリームから 4 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を int 値として返します。

ストリーム内のビットオフセットは無視され、0 として扱われます。

定義:
インタフェース DataInput 内の readInt
戻り値:
ストリームからの符号付き 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 にリセットされます。

定義:
インタフェース DataInput 内の readLong
戻り値:
ストリームからの符号付き long 値
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
getByteOrder()

readFloat

float readFloat()
                throws IOException
ストリームから 4 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を float 値として返します。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readFloat
戻り値:
ストリームからの float 値
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
getByteOrder()

readDouble

double readDouble()
                  throws IOException
ストリームから 8 バイトを読み込み、現在のバイト順に従って概念上それらを連結して、結果を double 値として返します。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readDouble
戻り値:
ストリームからの double 値
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
getByteOrder()

readLine

String readLine()
                throws IOException
入力ストリームから、次の行のテキストを読み込みます。このメソッドは、行末記号またはファイルの終わりを検出するまで、連続するバイトを読み込んで、各バイトをそれぞれ文字に変換します。読み込まれた文字は次に、String として返されます。このメソッドはバイトを処理するものなので、Unicode 文字セットの入力を完全にはサポートしません。

ファイルの終わりが検出されるまでに 1 バイトも読み込めなかった場合には、null が返されます。そうでない場合、読み込まれた各バイトはゼロ拡張によって char 型に変換されます。文字 '\n' が検出されると、この文字は破棄され、読み込みは中止されます。文字 '\r' が検出されると、この文字は破棄され、その次のバイトが文字 '\n' に変換されますが、この文字も破棄されて、読み込みが中止されます。文字 '\n' と文字 '\r' のどちらかより前にファイルの終わりが検出されると、読み込みが中止されます。読み込みが中止されると、読み込まれて破棄されていないすべての文字を取り込んだ順番で格納している String が返されます。この文字列のそれぞれの文字は \u0100、つまり (char)256 より小さい値を持ちます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readLine
戻り値:
ストリームからのテキスト行を含む String
例外:
IOException - 入出力エラーが発生した場合

readUTF

String readUTF()
               throws IOException
修正 UTF-8 形式でエンコードされた文字列を読み込みます。readUTF の汎用規約では、Java の修正 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 を使用するイメージ形式の実装では使用しないでください。

定義:
インタフェース DataInput 内の readUTF
戻り値:
ストリームから読み込まれた文字列
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
UTFDataFormatException - 文字列中のバイトが、有効な修正 UTF-8 形式でエンコードされた文字列以外であった場合
IOException - 入出力エラーが発生した場合

readFully

void readFully(byte[] b,
               int off,
               int len)
               throws IOException
ストリームから len バイトを読み込み、それらを b にインデックス off から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readFully
パラメータ:
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 から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

定義:
インタフェース DataInput 内の readFully
パラメータ:
b - byte の配列
例外:
NullPointerException - b が null の場合
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readFully

void readFully(short[] s,
               int off,
               int len)
               throws IOException
ストリームから現在のバイト順に従って len バイトの short (符号付き 16 ビット整数) 値を読み込み、それらを s にインデックス off から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

パラメータ:
s - 書き込まれる short 配列
off - 書き込み先の b 内の開始位置
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 から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

パラメータ:
c - 書き込まれる char 配列
off - 書き込み先の b 内の開始位置
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 から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

パラメータ:
i - 書き込まれる int 配列
off - 書き込み先の b 内の開始位置
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 から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

パラメータ:
l - 書き込まれる long 配列
off - 書き込み先の b 内の開始位置
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 から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

パラメータ:
f - 書き込まれる float 配列
off - 書き込み先の b 内の開始位置
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 から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットされます。

パラメータ:
d - 書き込まれる double 配列
off - 書き込み先の b 内の開始位置
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() の結果と異なる場合があります。

すべてのビットを読み込む前にストリームの終わりを検出した場合、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 にリセットされてから行われます。

定義:
インタフェース DataInput 内の skipBytes
パラメータ:
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 がスローされます。

シークでファイルの終わりを通過することは正常であり、EOFException は読み込みの場合のみスローされます。

パラメータ:
pos - 目的のファイルポインタ位置を示す long
例外:
IndexOutOfBoundsException - pos がフラッシュ位置よりも小さい場合
IOException - その他の入出力エラーが発生した場合

mark

void mark()
その後の reset 呼び出しで返されるストリーム内の位置をマーク付けします。標準の InputStream とは異なり、ImageInputStream はすべてマーク付けをサポートします。さらに、mark と reset の呼び出しは、任意に入れ子化することができます。

Reader InputStream インタフェースで宣言される mark メソッドとは異なり、readLimit パラメータは使用されません。mark の呼び出しに続いて任意のデータ量を読み込むことができます。

readBits メソッドで使用されるビット位置は保存され、mark と reset をペアで呼び出すたびに復元されます。


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 がスローされるか不正な動作が実行される場合があります。このメソッドを呼び出すと、このインタフェースを実装するクラスが、メモリ、ディスクスペース、またはファイル記述子などのストリームに関連するリソースを解放できます。

例外:
IOException - 入出力エラーが発生した場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。