JavaTM 2 Platform
Standard Ed. 5.0

javax.imageio.stream
クラス ImageInputStreamImpl

java.lang.Object
  上位を拡張 javax.imageio.stream.ImageInputStreamImpl
すべての実装されたインタフェース:
DataInput, ImageInputStream
直系の既知のサブクラス:
FileCacheImageInputStream, FileImageInputStream, ImageOutputStreamImpl, MemoryCacheImageInputStream

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 read(byte[] b)
          read(b, 0, b.length) を呼び出す簡易メソッドです。
abstract  int read(byte[] b, int off, int len)
          ストリームから len バイトまで読み込み、b にインデックス off から格納します。
 int readBit()
          ストリームから 1 ビットを読み込み、それを 値 0 または 1int として返します。
 long readBits(int numBits)
          ストリームからビット列を読み込み、long として返します。
 boolean readBoolean()
          1 バイトの入力データを読み込んで、そのバイトがゼロ以外の場合は true、そのバイトがゼロの場合は false を返します。
 byte readByte()
          1 バイトの入力データを読み込んで返します。
 void readBytes(IIOByteBuffer buf, int len)
          ストリームから len バイトまでを読み込み、指定された IIOByteBuffer を変更してデータを検出可能なバイト配列、オフセット、および長さを示します。
 char readChar()
          入力データの char を読み込んで、char 値を返します。
 double readDouble()
          8 バイトの入力データを読み込んで、double 値を返します。
 float readFloat()
          4 バイトの入力データを読み込んで、float 値を返します。
 void readFully(byte[] b)
          入力ストリームからいくつかのバイトを読み込んで、バッファ配列 b に格納します。
 void readFully(byte[] b, int off, int len)
          入力ストリームから len バイトを読み込みます。
 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()
          1 バイトの入力データを読み込んで、int 型にゼロ拡張して結果を返します。
 long readUnsignedInt()
          ストリームから 4 バイトを読み込んで現在のバイト順に従って概念上それらを連結し、結果の値を long に変換して、符号拡張ビットを取り除くために 0xffffffffL でマスクします。
 int readUnsignedShort()
          2 バイトの入力データを読み込んで、065535 の範囲の 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) を呼び出して、現在のストリーム位置を前進させます。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

byteOrder

protected ByteOrder byteOrder
列挙クラス java.nio.ByteOrder のインスタンスで表されるストリームのバイト順で、ByteOrder.BIG_ENDIAN はネットワークバイト順、ByteOrder.LITTLE_ENDIAN は逆順を示します。デフォルトでは、値は ByteOrder.BIG_ENDIAN です。


streamPos

protected long streamPos
ストリーム内の現在の読み込み位置です。サブクラスがオーバーライドする、読み込み位置を変更するすべてのメソッドからこの値を保護し、現状のままに保つことは、サブクラスの責任です。


bitOffset

protected int bitOffset
ストリーム内の現在のビットオフセットです。サブクラスがオーバーライドする、ビットオフセットを変更するすべてのメソッドからこの値を保護し、現状のままに保つことは、サブクラスの責任です。


flushedPos

protected long flushedPos
それより前のデータが破棄される位置です。これより前の位置にシークすることはできません。flushedPos は常に 0 以上になります。

コンストラクタの詳細

ImageInputStreamImpl

public ImageInputStreamImpl()
ImageInputStreamImpl を構築します。

メソッドの詳細

checkClosed

protected final void checkClosed()
                          throws IOException
ストリームが閉じられていた場合は IOException をスローします。サブクラスは、ストリームが開いていることが必要などのメソッドからも、このメソッドを呼び出すことができます。

例外:
IOException - ストリームが閉じられている場合

setByteOrder

public void setByteOrder(ByteOrder byteOrder)
インタフェース ImageInputStream の記述:
このストリームからの今後のデータ値の読み込みのために、バイト順を設定します。たとえば、’0x01 0x02 0x03 0x04’ のバイトシーケンスは、ネットワークバイト順を使用すると ‘0x01020304’ の値となり、逆バイト順では ‘0x04030201’ の値となります。

列挙クラス java.nio.ByteOrder を使用してバイト順を指定します。値 ByteOrder.BIG_ENDIAN では、高位のバイトが先頭となる、いわゆるビッグエンディアン (ネットワークバイト順) が指定されます。Motorola と Sparc プロセッサはデータをこの形式で格納します。一方 Intel プロセッサは、データを逆順の ByteOrder.LITTLE_ENDIAN で格納します。

バイト順は、readBits メソッドから返される結果 (ImageOutputStream.writeBits により書き込まれる値) には影響を与えません。

定義:
インタフェース ImageInputStream 内の setByteOrder
パラメータ:
byteOrder - ByteOrder.BIG_ENDIAN または java.nio.ByteOrder.LITTLE_ENDIAN のいずれか (今後の読み込みでネットワークバイト順またはその逆順のどちらを使用するかを示す)
関連項目:
ByteOrder, ImageInputStream.getByteOrder(), ImageInputStream.readBits(int)

getByteOrder

public ByteOrder getByteOrder()
インタフェース ImageInputStream の記述:
このストリームから読み込まれるデータのバイト順を、java.nio.ByteOrder 列挙のインスタンスとして返します。

定義:
インタフェース ImageInputStream 内の getByteOrder
戻り値:
ByteOrder.BIG_ENDIAN または ByteOrder.LITTLE_ENDIAN のいずれか (使用されるバイト順を示す)
関連項目:
ByteOrder, ImageInputStream.setByteOrder(java.nio.ByteOrder)

read

public abstract int read()
                  throws IOException
インタフェース ImageInputStream の記述:
ストリームから 1 バイトを読み込み、それを 0 から 255 までの整数として返します。ストリームの終わりに達すると -1 を返します。

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

定義:
インタフェース ImageInputStream 内の read
戻り値:
ストリームからのバイト値 (int)、または -1 (EOF を示す)
例外:
IOException - 入出力エラーが発生した場合

read

public int read(byte[] b)
         throws IOException
read(b, 0, b.length) を呼び出す簡易メソッドです。

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

定義:
インタフェース ImageInputStream 内の read
パラメータ:
b - 書き込まれるバイト配列
戻り値:
実際に読み込まれたバイト数、または EOF を示す -1
例外:
NullPointerException - bnull の場合
IOException - 入出力エラーが発生した場合

read

public abstract int read(byte[] b,
                         int off,
                         int len)
                  throws IOException
ストリームから len バイトまで読み込み、b にインデックス off から格納します。読み込んだバイト数を返します。ストリームの終りに達したためにバイトを読み込めない場合は、-1 を返します。

ストリーム内のビットオフセットは、読み込みを行う前に 0 にリセットする必要があります。

サブクラスでこのメソッドを実装する必要があります。サブクラス実装で終了する前にストリーム位置を更新します。

定義:
インタフェース ImageInputStream 内の read
パラメータ:
b - 書き込まれるバイト配列
off - 書き込み先の b 内の開始位置
len - 読み込む最大バイト数
戻り値:
実際に読み込まれたバイト数、または EOF を示す -1
例外:
IndexOutOfBoundsException - off が負、len が負、または off + lenb.length より大きい場合
NullPointerException - bnull の場合
IOException - 入出力エラーが発生した場合

readBytes

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

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

定義:
インタフェース ImageInputStream 内の readBytes
パラメータ:
buf - 変更される IIOByteBuffer オブジェクト
len - byte の最大読み込み数
例外:
IOException - 入出力エラーが発生した場合

readBoolean

public boolean readBoolean()
                    throws IOException
インタフェース DataInput の記述:
1 バイトの入力データを読み込んで、そのバイトがゼロ以外の場合は true、そのバイトがゼロの場合は false を返します。このメソッドは、DataOutput インタフェースの writeBoolean メソッドが書き込むバイトを読み込むのに適しています。

定義:
インタフェース DataInput 内の readBoolean
定義:
インタフェース ImageInputStream 内の readBoolean
戻り値:
読み込まれた boolean の値
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readByte

public byte readByte()
              throws IOException
インタフェース DataInput の記述:
1 バイトの入力データを読み込んで返します。読み込み対象バイトは -128127 の範囲 (上下限値を含む) の符号付きの値として処理されます。このメソッドは、DataOutput インタフェースの writeByte メソッドによって書き込まれたバイトを読み込むのに適しています。

定義:
インタフェース DataInput 内の readByte
定義:
インタフェース ImageInputStream 内の readByte
戻り値:
読み込まれた 8 ビットの値
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readUnsignedByte

public int readUnsignedByte()
                     throws IOException
インタフェース DataInput の記述:
1 バイトの入力データを読み込んで、int 型にゼロ拡張して結果を返します。このため、結果は 0255 の範囲内になります。DataOutput インタフェースの writeByte メソッドの引数がこの範囲内の値になるように意図されている場合、このメソッドは writeByte メソッドによって書き込まれたバイトを読み込むのに適しています。

定義:
インタフェース DataInput 内の readUnsignedByte
定義:
インタフェース ImageInputStream 内の readUnsignedByte
戻り値:
読み込まれた符号なし 8 ビットの値
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readShort

public short readShort()
                throws IOException
インタフェース DataInput の記述:
2 バイトの入力データを読み込んで、short 値を返します。a を 1 番目のバイト、b を 2 番目のバイトとすると、戻り値は次のようになります。

(short)((a <<
 8) | (b &
 0xff))
このメソッドは、DataOutput インタフェースの writeShort メソッドによって書き込まれたバイトを読み込むのに適しています。

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

readUnsignedShort

public int readUnsignedShort()
                      throws IOException
インタフェース DataInput の記述:
2 バイトの入力データを読み込んで、065535 の範囲の int 値を返します。a を 1 番目のバイト、b を 2 番目のバイトとすると、戻り値は次のようになります。

(((a &
 0xff) <<
 8) | (b &
 0xff))
DataOutput インタフェースの writeShort メソッドの引数が 065535 の範囲の値になるように意図されている場合、このメソッドは writeShort メソッドによって書き込まれたバイトを読み込むのに適しています。

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

readChar

public char readChar()
              throws IOException
インタフェース DataInput の記述:
入力データの char を読み込んで、char 値を返します。Unicode char は 2 バイトから構成されます。a を 1 番目のバイト、b を 2 番目のバイトとすると、戻り値は次のようになります。

(char)((a <<
 8) | (b &
 0xff))
このメソッドは、DataOutput インタフェースの writeChar メソッドによって書き込まれたバイトを読み込むのに適しています。

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

readInt

public int readInt()
            throws IOException
インタフェース DataInput の記述:
4 バイトの入力データを読み込んで、int 値を返します。a を 1 番目、b を 2 番目、c を 3 番目、d を 4 番目のバイトとすると、戻り値は次のようになります。


  (((a & 0xff) << 24) | ((b & 0xff) << 16) |  ((c & 0xff) << 8) | (d & 0xff)) 
このメソッドは、DataOutput インタフェースの writeInt メソッドによって書き込まれたバイトを読み込むのに適しています。

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

readUnsignedInt

public long readUnsignedInt()
                     throws IOException
インタフェース ImageInputStream の記述:
ストリームから 4 バイトを読み込んで現在のバイト順に従って概念上それらを連結し、結果の値を long に変換して、符号拡張ビットを取り除くために 0xffffffffL でマスクします。その結果を符号なし long 値として返します。

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

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

readLong

public long readLong()
              throws IOException
インタフェース DataInput の記述:
8 バイトの入力データを読み込んで、long 値を返します。a を 1 番目、b を 2 番目、c を 3 番目、d を 4 番目、e を 5 番目、f を 6 番目、g を 7 番目、h を 8 番目のバイトとすると、戻り値は次のようになります。

 
 (((long)(a & 0xff) << 56) | ((long)(b & 0xff) << 48) | ((long)(c & 0xff) << 40) | ((long)(d & 0xff) << 32) | ((long)(e & 0xff) << 24) | ((long)(f & 0xff) << 16) | ((long)(g & 0xff) <<  8) | ((long)(h & 0xff))) 

このメソッドは、DataOutput インタフェースの writeLong メソッドによって書き込まれたバイトを読み込むのに適しています。

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

readFloat

public float readFloat()
                throws IOException
インタフェース DataInput の記述:
4 バイトの入力データを読み込んで、float 値を返します。このためには、まず readInt メソッドとまったく同じ方法で int 値を作成し、次にこの int 値を Float.intBitsToFloat メソッドとまったく同じ方法で float に変換します。このメソッドは、DataOutput インタフェースの writeFloat メソッドによって書き込まれたバイトを読み込むのに適しています。

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

readDouble

public double readDouble()
                  throws IOException
インタフェース DataInput の記述:
8 バイトの入力データを読み込んで、double 値を返します。このためには、まず readlong メソッドとまったく同じ方法で long 値を作成し、次にこの long 値を Double.longBitsToDouble メソッドとまったく同じ方法で double に変換します。このメソッドは、DataOutput インタフェースの writeDouble メソッドによって書き込まれたバイトを読み込むのに適しています。

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

readLine

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

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

定義:
インタフェース DataInput 内の readLine
定義:
インタフェース ImageInputStream 内の readLine
戻り値:
この入力ストリームからの次のテキスト行。ファイルの終わりが検出されるまでに 1 バイトも読み込めなかった場合は null
例外:
IOException - 入出力エラーが発生した場合

readUTF

public String readUTF()
               throws IOException
インタフェース DataInput の記述:
修正 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 がスローされます。

この処理全体のどこかでファイルの終わりが検出されると、EOFException がスローされます。

各グループがこの処理で 1 文字に変換されると、対応するグループが入力ストリームから読み込まれたのと同じ順序で各文字が収集され、String を表現します。そして、この String が返されます。

DataOutput インタフェースの writeUTF メソッドを使うと、このメソッドで読み込むのに適したデータを書き込むことができます。

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

readFully

public void readFully(byte[] b,
                      int off,
                      int len)
               throws IOException
インタフェース DataInput の記述:
入力ストリームから len バイトを読み込みます。

このメソッドは、以下の条件の 1 つが発生するまでブロックします。

bnull の場合、NullPointerException がスローされます。off が負の値の場合、len が負の値の場合、あるいは off+len が配列 b の長さよりも大きい場合、IndexOutOfBoundsException がスローされます。len がゼロの場合、読み込まれるバイトはありません。そうでない場合、読み込まれる最初のバイトは要素 b[off] に、次のバイトは要素 b[off+1] にと順次格納されていきます。読み込まれるバイト数は、最大でも len までです。

定義:
インタフェース DataInput 内の readFully
定義:
インタフェース ImageInputStream 内の readFully
パラメータ:
b - データの読み込み先のバッファ
off - データへのオフセットを指定する int
len - 読み込むバイト数を指定する int
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readFully

public void readFully(byte[] b)
               throws IOException
インタフェース DataInput の記述:
入力ストリームからいくつかのバイトを読み込んで、バッファ配列 b に格納します。読み込まれるバイト数は b の長さに一致します。

このメソッドは、以下の条件の 1 つが発生するまでブロックします。

bnull の場合、NullPointerException がスローされます。b.length がゼロの場合、読み込まれるバイトはありません。そうでない場合、読み込まれる最初のバイトは要素 b[0] に、次のバイトは要素 b[1] にと順次格納されていきます。このメソッドから例外がスローされると、b のすべてではないにしても一部のバイトが入力ストリームのデータで更新されています。

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

readFully

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

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

定義:
インタフェース ImageInputStream 内の readFully
パラメータ:
s - 書き込まれる short 配列
off - 書き込み先の b 内の開始位置
len - short の最大読み込み数
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readFully

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

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

定義:
インタフェース ImageInputStream 内の readFully
パラメータ:
c - 書き込まれる char 配列
off - 書き込み先の b 内の開始位置
len - char の最大読み込み数
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readFully

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

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

定義:
インタフェース ImageInputStream 内の readFully
パラメータ:
i - 書き込まれる int 配列
off - 書き込み先の b 内の開始位置
len - int の最大読み込み数
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readFully

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

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

定義:
インタフェース ImageInputStream 内の readFully
パラメータ:
l - 書き込まれる long 配列
off - 書き込み先の b 内の開始位置
len - long の最大読み込み数
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readFully

public void readFully(float[] f,
                      int off,
                      int len)
               throws IOException
インタフェース ImageInputStream の記述:
ストリームから現在のバイト順に従って len バイトの float (32 ビット IEEE 単精度浮動小数点数) 値を読み込み、それらを f にインデックス off から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

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

定義:
インタフェース ImageInputStream 内の readFully
パラメータ:
f - 書き込まれる float 配列
off - 書き込み先の b 内の開始位置
len - float の最大読み込み数
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readFully

public void readFully(double[] d,
                      int off,
                      int len)
               throws IOException
インタフェース ImageInputStream の記述:
ストリームから現在のバイト順に従って len バイトの double (64 ビット IEEE 倍精度浮動小数点数) 値を読み込み、それらを d にインデックス off から格納します。ストリームの終わりに達すると、 EOFException がスローされます。

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

定義:
インタフェース ImageInputStream 内の readFully
パラメータ:
d - 書き込まれる double 配列
off - 書き込み先の b 内の開始位置
len - double の最大読み込み数
例外:
EOFException - すべてのバイトを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

getStreamPosition

public long getStreamPosition()
                       throws IOException
インタフェース ImageInputStream の記述:
ストリームの現在のバイト位置を返します。次の読み込みはこのオフセットから開始されます。

定義:
インタフェース ImageInputStream 内の getStreamPosition
戻り値:
ストリームの位置を含む long
例外:
IOException - 入出力エラーが発生した場合

getBitOffset

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

ビットオフセットは、ストリームを最初に開くときに 0 に設定され、seekskipBytes、または readreadFully メソッドのいずれかが呼び出されると 0 にリセットされます。

定義:
インタフェース ImageInputStream 内の getBitOffset
戻り値:
0 から 7 までのオフセット値を含む int
例外:
IOException - 入出力エラーが発生した場合
関連項目:
ImageInputStream.setBitOffset(int)

setBitOffset

public void setBitOffset(int bitOffset)
                  throws IOException
インタフェース ImageInputStream の記述:
ビットオフセットに 0 から 7 までの整数を設定します。getStreamPosition から返される、ストリーム内のバイトオフセットは変更されません。値 0 は読み込まれるバイトの最上位ビット、値 7 は最下位ビットを示します。

定義:
インタフェース ImageInputStream 内の setBitOffset
パラメータ:
bitOffset - 目的のオフセットで、0 から 7 までの int
例外:
IOException - 入出力エラーが発生した場合
関連項目:
ImageInputStream.getBitOffset()

readBit

public int readBit()
            throws IOException
インタフェース ImageInputStream の記述:
ストリームから 1 ビットを読み込み、それを 値 0 または 1int として返します。ビットオフセットは 1 ずつ増加し、8 を法として減分します。

定義:
インタフェース ImageInputStream 内の readBit
戻り値:
0 または 1int
例外:
EOFException - すべてのビットを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

readBits

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() の結果と異なる場合があります。

すべてのビットを読み込む前にストリームの終わりを検出した場合、EOFException がスローされます。

定義:
インタフェース ImageInputStream 内の readBits
パラメータ:
numBits - 読み込むビット数を示す 0 から 64 までの int
戻り値:
最後に読み込んだビットを最下位ビットに格納した long のビット列
例外:
EOFException - すべてのビットを読み込む前に、このストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合

length

public long length()
ストリームが未知の長さであることを示す -1L を返します。サブクラスでこのメソッドをオーバーライドして、実際の長さの情報を指定する必要があります。

定義:
インタフェース ImageInputStream 内の length
戻り値:
未知の長さを示す -1L

skipBytes

public int skipBytes(int n)
              throws IOException
seek(getStreamPosition() + n) を呼び出して、現在のストリーム位置を前進させます。

ビットオフセットは 0 にリセットされます。

定義:
インタフェース DataInput 内の skipBytes
定義:
インタフェース ImageInputStream 内の skipBytes
パラメータ:
n - 前方にシークするバイト数
戻り値:
スキップされたバイト数を示す int
例外:
IOException - 開始または終了位置を計算する際に getStreamPositionIOException をスローする場合

skipBytes

public long skipBytes(long n)
               throws IOException
seek(getStreamPosition() + n) を呼び出して、現在のストリーム位置を前進させます。

ビットオフセットは 0 にリセットされます。

定義:
インタフェース ImageInputStream 内の skipBytes
パラメータ:
n - 前方にシークするバイト数
戻り値:
スキップされたバイト数を示す long
例外:
IOException - 開始または終了位置を計算する際に getStreamPositionIOException をスローする場合

seek

public void seek(long pos)
          throws IOException
インタフェース ImageInputStream の記述:
現在のストリーム位置を目的の位置に設定します。次回の読み込みはこの位置で行われます。ビットオフセットは 0 に設定されます。

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

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

定義:
インタフェース ImageInputStream 内の seek
パラメータ:
pos - 目的のファイルポインタ位置を示す long
例外:
IOException - その他の入出力エラーが発生した場合

mark

public void mark()
マーク付けされた位置のスタック上に現在のストリーム位置をプッシュします。

定義:
インタフェース ImageInputStream 内の mark

reset

public void reset()
           throws IOException
マーク付けされた位置のスタックから現在のストリームバイトおよびビット位置をリセットします。

以前にマーク付けされた位置がストリームの破棄された部分である場合には IOException がスローされます。

定義:
インタフェース ImageInputStream 内の reset
例外:
IOException - 入出力エラーが発生した場合

flushBefore

public void flushBefore(long pos)
                 throws IOException
インタフェース ImageInputStream の記述:
指示された位置より前の初期のストリーム部分を破棄します。ストリームのフラッシュされた部分内のオフセットにシークしようとすると、IndexOutOfBoundsException がスローされます。

flushBefore を呼び出すと、このインタフェースを実装するクラスが、ストリームからデータを格納するのに使用するメモリやディスクスペースなどのリソースを解放できます。

定義:
インタフェース ImageInputStream 内の flushBefore
パラメータ:
pos - フラッシュされるファイル接頭辞の長さを示す long
例外:
IOException - 入出力エラーが発生した場合

flush

public void flush()
           throws IOException
インタフェース ImageInputStream の記述:
現在のストリーム位置より前の初期のストリーム位置を破棄します。flushBefore(getStreamPosition()) と同じです。

定義:
インタフェース ImageInputStream 内の flush
例外:
IOException - 入出力エラーが発生した場合

getFlushedPosition

public long getFlushedPosition()
インタフェース ImageInputStream の記述:
シークが実行されるストリーム内の一番初期の位置を返します。戻り値は、以前の flushBefore 呼び出しに渡されたすべての値の最大値になります。

定義:
インタフェース ImageInputStream 内の getFlushedPosition
戻り値:
一番初期の正当なシーク位置を示す long

isCached

public boolean isCached()
デフォルトの実装では false を返します。サブクラスは、データをキャッシュに格納する場合はこれをオーバーライドする必要があります。

定義:
インタフェース ImageInputStream 内の isCached
戻り値:
この ImageInputStream がデータをキャシュに格納する場合は true
関連項目:
ImageInputStream.isCachedMemory(), ImageInputStream.isCachedFile()

isCachedMemory

public boolean isCachedMemory()
デフォルトの実装では false を返します。サブクラスは、データをメインメモリにキャッシュする場合はこれをオーバーライドする必要があります。

定義:
インタフェース ImageInputStream 内の isCachedMemory
戻り値:
この ImageInputStream がデータをメインメモリにキャシュする場合は true
関連項目:
ImageInputStream.isCached(), ImageInputStream.isCachedFile()

isCachedFile

public boolean isCachedFile()
デフォルトの実装では false を返します。サブクラスは、データを一時ファイルにキャッシュする場合はこれをオーバーライドする必要があります。

定義:
インタフェース ImageInputStream 内の isCachedFile
戻り値:
この ImageInputStream がデータを一時ファイルにキャシュする場合は true
関連項目:
ImageInputStream.isCached(), ImageInputStream.isCachedMemory()

close

public void close()
           throws IOException
インタフェース ImageInputStream の記述:
ストリームを閉じます。閉じたストリームにアクセスしようとすると、 IOException がスローされるか不正な動作が実行される場合があります。このメソッドを呼び出すと、このインタフェースを実装するクラスが、メモリ、ディスクスペース、またはファイル記述子などのストリームに関連するリソースを解放できます。

定義:
インタフェース ImageInputStream 内の close
例外:
IOException - 入出力エラーが発生した場合

finalize

protected void finalize()
                 throws Throwable
ガベージコレクションの前にこのオブジェクトをファイナライズします。close メソッドを呼び出して、開いている入力ソースをすべて閉じます。このメソッドを、アプリケーションコードから呼び出してはなりません。

オーバーライド:
クラス Object 内の finalize
例外:
Throwable - スーパークラスのファイナライズ時にエラーが発生した場合

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 も参照してください。