モジュール java.desktop
パッケージ javax.imageio.stream

インタフェースImageInputStream

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

public interface ImageInputStream
extends DataInput, Closeable
ImageReaderで使用されるシーク可能な入力ストリーム・インタフェースです。 InputStreamFileなどのさまざまな入力ソース、および将来の高速な入出力ソースを、このインタフェースの適切な実装で「ラップ」することで、イメージ入出力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または1intとして返します。
    long readBits​(int numBits)
    ストリームからビット列を読み込み、longとして返します。読み込んだ最初のビットが出力の最上位ビットになります。
    boolean readBoolean()
    ストリームから1バイトを読み込み、0でない場合はtrueboolean値を返し、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 - bnullである場合。
      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 - bnullである場合。
      IndexOutOfBoundsException - offが負の値の場合、lenが負の値の場合、またはoff+lenb.lengthより大きい場合。
      IOException - 入出力エラーが発生した場合。
    • readBytes

      void readBytes​(IIOByteBuffer buf, int len) throws IOException
      ストリームからlenバイトまでを読み込み、指定されたIIOByteBufferを変更してデータを検出可能なバイト配列、オフセット、および長さを示します。 呼出し側で、IIOByteBufferで検出されたデータを変更してはいけません。

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

      パラメータ:
      buf - 変更されるIIOByteBufferオブジェクト。
      len - 読み込む最大byte数。
      例外:
      IndexOutOfBoundsException - lenが負の値の場合。
      NullPointerException - bufnullの場合。
      IOException - 入出力エラーが発生した場合。
    • readBoolean

      boolean readBoolean() throws IOException
      ストリームから1バイトを読み込み、0でない場合はtrueboolean値を返し、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 IOException
      readUnsignedShortと同等、ただし結果は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 (ただし、x0または1を意味します)に一致する場合、グループはそのバイトだけで構成されます。 バイトはゼロ拡張されて単一の文字を表現します。

      グループの先頭バイトがビット・パターン110xxxxxに一致する場合、そのグループはそのバイトaと2番目のバイトbから構成されます。 バイトbが存在しない場合(バイトaが読み込まれた最後のバイトだった場合)や、バイトbがビット・パターン10xxxxxxに一致しない場合には、UTFDataFormatExceptionがスローされます。 そうでない場合、グループは次の文字に変換されます。

      
       (char)(((a& 0x1F) << 6) | (b & 0x3F))
       
      グループの先頭バイトがビット・パターン1110xxxxに一致する場合、そのグループは先頭バイトaに加えて、2つのバイトbcから構成されます。 バイト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+lenb.lengthより大きい場合。
      NullPointerException - bnullである場合。
      EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合。
      IOException - 入出力エラーが発生した場合。
    • readFully

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

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

      定義:
      readFully、インタフェース: DataInput
      パラメータ:
      b - byteの配列。
      例外:
      NullPointerException - bnullである場合。
      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+lens.lengthより大きい場合。
      NullPointerException - snullの場合。
      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+lenc.lengthより大きい場合。
      NullPointerException - cnullの場合。
      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+leni.lengthより大きい場合。
      NullPointerException - inullの場合。
      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+lenl.lengthより大きい場合。
      NullPointerException - lnullの場合。
      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+lenf.lengthより大きい場合。
      NullPointerException - fnullの場合。
      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+lend.lengthより大きい場合。
      NullPointerException - dnullの場合。
      EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合。
      IOException - 入出力エラーが発生した場合。
    • getStreamPosition

      long getStreamPosition() throws IOException
      ストリームの現在のバイト位置を返します。 次の読込みはこのオフセットから開始されます。
      戻り値:
      ストリームの位置を含むlong
      例外:
      IOException - 入出力エラーが発生した場合。
    • getBitOffset

      int getBitOffset() throws IOException
      現在のビット・オフセットを0から7までの整数として返します。 ビット・オフセットは、readBitsメソッドの呼出しで暗黙的に更新されます。 値0は読み込まれるバイトの最上位ビット、値7は最下位ビットを示します。

      ビット・オフセットは、ストリームを最初に開くときに0に設定され、seekskipBytes、またはreadreadFullyメソッドのいずれかが呼び出されると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または1intとして返します。 ビット・オフセットは1ずつ増加し、8を法として減分します。
      戻り値:
      0または1int
      例外:
      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に設定されます。

      posgetflushedPositionから返されるフラッシュ位置よりも小さい場合は、IndexOutOfBoundsExceptionがスローされます。

      ファイルの最後を追い抜くことは合法です。java.io.EOFExceptionは、読み取りが実行された場合にのみスローされます。

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

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

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

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

      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 - 入出力エラーが発生した場合。