CDC 1.1.2

java.io
クラス DataInputStream

java.lang.Object
  上位を拡張 java.io.InputStream
      上位を拡張 java.io.FilterInputStream
          上位を拡張 java.io.DataInputStream
すべての実装されたインタフェース:
DataInput

public class DataInputStream
extends FilterInputStream
implements DataInput

データ入力ストリームにより、アプリケーションは、プリミティブ型の Java データを基本となる入力ストリームからマシンに依存せずに読み込むことができます。アプリケーションはデータ出力ストリームを使ってデータを書き込むことにより、そのデータをあとで入力ストリームから読み込むこともできます。  

データ入力ストリームとデータ出力ストリームは、UTF-8 を若干修正した形式の Unicode で文字列を表現します。詳細は『X/Open Preliminary Specification』 (X/Open Company Ltd. 刊、Document Number: P316) の「File System Safe UCS Transformation Format (FSS_UTF)」を参照してください。これに関する情報は「ISO/IEC 10646, Annex P」にも記載されています。次の表では、左端の列が最上位ビットです。  

'\u0001''\u007F' までの範囲の文字はすべて 1 個のバイトで表現されます。

ビット値

バイト 1  0 ビット 6-0

null 文字 '\u0000''\u0080''\u07FF' の範囲の文字は 2 個のバイトで表現されます。

ビット値

バイト 1  1 1 0 ビット 10-6
バイト 2  1 0 ビット 5-0

'\u0800''\uFFFF' の範囲の文字は 3 個のバイトで表現されます。

ビット値

バイト 1  1 1 1 0 ビット 15-12
バイト 2  1 0 ビット 11-6
バイト 3  1 0 ビット 5-0

「標準」 UTF-8 形式とこの形式とは、次の 2 つの点で異なります。

導入されたバージョン:
JDK1.0
関連項目:
DataOutputStream

フィールドの概要
 
クラス java.io.FilterInputStream から継承されたフィールド
in
 
コンストラクタの概要
DataInputStream(InputStream in)
          指定された基本となる InputStream を使用する DataInputStream を作成します。
 
メソッドの概要
 int read(byte[] b)
          含まれる入力ストリームから数バイトを読み込み、それをバッファー配列 b に格納します。
 int read(byte[] b, int off, int len)
          保存された入力ストリームから len バイトまでのデータをバイト配列に読み込みます。
 boolean readBoolean()
          DataInputreadBoolean メソッドの汎用規約を参照してください。
 byte readByte()
          DataInputreadByte メソッドの汎用規約を参照してください。
 char readChar()
          DataInputreadChar メソッドの汎用規約を参照してください。
 double readDouble()
          DataInputreadDouble メソッドの汎用規約を参照してください。
 float readFloat()
          DataInputreadFloat メソッドの汎用規約を参照してください。
 void readFully(byte[] b)
          DataInputreadFully メソッドの汎用規約を参照してください。
 void readFully(byte[] b, int off, int len)
          DataInputreadFully メソッドの汎用規約を参照してください。
 int readInt()
          DataInputreadInt メソッドの汎用規約を参照してください。
 String readLine()
          推奨されていません。 このメソッドは、バイトを適切に文字列に変換しません。JDK 1.1 では、テキスト行を読み込む方法としては BufferedReader.readLine() メソッドを使うことが推奨されています。行を読み込むのに DataInputStream クラスを使うプログラムを、BufferedReader クラスを使うように変換するには、次の形式のコードを、
     DataInputStream d = new DataInputStream(in);
 
次の形式のコードで置き換えます。
     BufferedReader d
          = new BufferedReader(new InputStreamReader(in));
 
 long readLong()
          DataInputreadLong メソッドの汎用規約を参照してください。
 short readShort()
          DataInputreadShort メソッドの汎用規約を参照してください。
 int readUnsignedByte()
          DataInputreadUnsignedByte メソッドの汎用規約を参照してください。
 int readUnsignedShort()
          DataInputreadUnsignedShort メソッドの汎用規約を参照してください。
 String readUTF()
          DataInputreadUTF メソッドの汎用規約を参照してください。
static String readUTF(DataInput in)
          Java 修正 UTF-8 形式でエンコードされた Unicode 文字列表現を、ストリーム in から読み込みます。
 int skipBytes(int n)
          DataInputskipBytes メソッドの汎用規約を参照してください。
 
クラス java.io.FilterInputStream から継承されたメソッド
available, close, mark, markSupported, read, reset, skip
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

DataInputStream

public DataInputStream(InputStream in)
指定された基本となる InputStream を使用する DataInputStream を作成します。

パラメータ:
in - 指定された入力ストリーム
メソッドの詳細

read

public final int read(byte[] b)
               throws IOException
含まれる入力ストリームから数バイトを読み込み、それをバッファー配列 b に格納します。実際に読み込まれたバイト数は整数として返されます。このメソッドは、入力データが読み込めるようになるか、ファイルの終わりが検出されるか、あるいは例外がスローされるまでブロックします。

b が null の場合は、NullPointerException がスローされます。b の長さが 0 の場合は、バイトは読み込まれず、0 が返されます。そうでない場合は、少なくとも 1 バイトを読み込もうとします。ストリームがファイルの終わりに達したために読み込むバイトがない場合は値 -1 が返されます。そうでない場合は、少なくとも 1 バイトが読み込まれ、b に格納されます。

最初に読み込まれたバイトは要素 b[0] に格納され、次のバイトは b[1] に格納され、それ以降も同様に続きます。読み込まれるバイト数の上限は b の長さと同じです。実際に読み込まれるバイト数を k とすると、これらのバイトは要素 b[0]b[k-1] に格納され、要素 b[k]b[b.length-1] は影響を受けません。

ファイルの終わり以外のなんらかの理由により最初のバイトを読み込むことができない場合は、IOException がスローされます。特に、ストリームが閉じている場合は、IOException がスローされます。

read(b) メソッドの効果は、次と同じです。

 read(b, 0, b.length) 
 

オーバーライド:
クラス FilterInputStream 内の read
パラメータ:
b - データの読み込み先のバッファー
戻り値:
バッファーに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in, InputStream.read(byte[], int, int)

read

public final int read(byte[] b,
                      int off,
                      int len)
               throws IOException
保存された入力ストリームから len バイトまでのデータをバイト配列に読み込みます。len までのバイトの読み込みが試行されますが、読み込まれるバイト数はもっと少ない場合もあり、0 の場合もあります。実際に読み込まれたバイト数は整数として返されます。

このメソッドは、入力データが読み込めるようになるか、ファイルの終わりが検出されるか、あるいは例外がスローされるまでブロックします。

bnull の場合は、NullPointerException がスローされます。

off が負の場合、len が負の場合、あるいは off+len が配列 b の長さより大きい場合は、IndexOutOfBoundsException がスローされます。

len が 0 の場合、バイトは読み込まれず、0 が返されます。そうでない場合は、少なくとも 1 バイトを読み込もうとします。ストリームがファイルの終わりに達したために読み込むバイトがない場合は値 -1 が返されます。そうでない場合は、少なくとも 1 バイトが読み込まれ、b に格納されます。

最初に読み込まれたバイトは要素 b[off] に格納され、次のバイトは b[off+1] に格納され、それ以降も同様に続きます。読み込まれるバイト数の上限は len と同じです。実際に読み込まれるバイト数を k とすると、これらのバイトは要素 b[off]b[off+k-1] に格納され、要素 b[off+k]b[off+len-1] は影響を受けません。

すべての場合に、要素 b[0]b[off] および要素 b[off+len]b[b.length-1] は影響を受けません。

ファイルの終わり以外のなんらかの理由により最初のバイトを読み込むことができない場合は、IOException がスローされます。特に、ストリームが閉じている場合は、IOException がスローされます。

オーバーライド:
クラス FilterInputStream 内の read
パラメータ:
b - データの読み込み先のバッファー
off - データの開始オフセット
len - 読み込まれる最大バイト数
戻り値:
バッファーに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in, InputStream.read(byte[], int, int)

readFully

public final void readFully(byte[] b)
                     throws IOException
DataInputreadFully メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

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

readFully

public final void readFully(byte[] b,
                            int off,
                            int len)
                     throws IOException
DataInputreadFully メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

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

skipBytes

public final int skipBytes(int n)
                    throws IOException
DataInputskipBytes メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の skipBytes
パラメータ:
n - スキップするバイト数
戻り値:
実際にスキップされたバイト数
例外:
IOException - 入出力エラーが発生した場合

readBoolean

public final boolean readBoolean()
                          throws IOException
DataInputreadBoolean メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readBoolean
戻り値:
読み込まれた boolean の値
例外:
EOFException - 入力ストリームが終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

readByte

public final byte readByte()
                    throws IOException
DataInputreadByte メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readByte
戻り値:
符号付き 8 ビット byte とみなされる入力ストリームの次のバイト
例外:
EOFException - 入力ストリームが終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

readUnsignedByte

public final int readUnsignedByte()
                           throws IOException
DataInputreadUnsignedByte メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readUnsignedByte
戻り値:
入力ストリームの次のバイトを符号なし 8 ビットと解釈した値
例外:
EOFException - 入力ストリームが終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

readShort

public final short readShort()
                      throws IOException
DataInputreadShort メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readShort
戻り値:
入力ストリームの次の 2 バイトを符号付き 16 ビット数と解釈した値
例外:
EOFException - 2 バイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

readUnsignedShort

public final int readUnsignedShort()
                            throws IOException
DataInputreadUnsignedShort メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readUnsignedShort
戻り値:
入力ストリームの次の 2 バイトを符号なし 16 ビットと解釈した整数値
例外:
EOFException - 2 バイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

readChar

public final char readChar()
                    throws IOException
DataInputreadChar メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readChar
戻り値:
入力ストリームの次の 2 バイトを表す Unicode 文字
例外:
EOFException - 2 バイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

readInt

public final int readInt()
                  throws IOException
DataInputreadInt メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readInt
戻り値:
入力ストリームの次の 4 バイトを int と解釈した値
例外:
EOFException - 4 バイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

readLong

public final long readLong()
                    throws IOException
DataInputreadLong メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readLong
戻り値:
入力ストリームの次の 8 バイトを long と解釈した値
例外:
EOFException - 8 バイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
FilterInputStream.in

readFloat

public final float readFloat()
                      throws IOException
DataInputreadFloat メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readFloat
戻り値:
入力ストリームの次の 4 バイトを float と解釈した値
例外:
EOFException - 4 バイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
readInt(), Float.intBitsToFloat(int)

readDouble

public final double readDouble()
                        throws IOException
DataInputreadDouble メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readDouble
戻り値:
入力ストリームの次の 8 バイトを double と解釈した値
例外:
EOFException - 8 バイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
関連項目:
readLong(), Double.longBitsToDouble(long)

readLine

public final String readLine()
                      throws IOException
推奨されていません。 このメソッドは、バイトを適切に文字列に変換しません。JDK 1.1 では、テキスト行を読み込む方法としては BufferedReader.readLine() メソッドを使うことが推奨されています。行を読み込むのに DataInputStream クラスを使うプログラムを、BufferedReader クラスを使うように変換するには、次の形式のコードを、
     DataInputStream d = new DataInputStream(in);
 
次の形式のコードで置き換えます。
     BufferedReader d
          = new BufferedReader(new InputStreamReader(in));
 

DataInputreadLine メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

定義:
インタフェース DataInput 内の readLine
戻り値:
入力ストリームからの次のテキスト行
例外:
IOException - 入出力エラーが発生した場合
関連項目:
BufferedReader.readLine(), FilterInputStream.in

readUTF

public final String readUTF()
                     throws IOException
DataInputreadUTF メソッドの汎用規約を参照してください。  

このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。

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

readUTF

public static final String readUTF(DataInput in)
                            throws IOException
Java 修正 UTF-8 形式でエンコードされた Unicode 文字列表現を、ストリーム in から読み込みます。読み込まれた文字列は、String として返されます。修正 UTF-8 表現の詳細は、DataInputreadUTF メソッドのものと完全に一致します。

パラメータ:
in - データ入力ストリーム
戻り値:
Unicode 文字列
例外:
EOFException - すべてのバイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
UTFDataFormatException - 文字列中のバイトが、有効な Java 修正 UTF-8 形式でエンコードされた Unicode 文字列以外であった場合
関連項目:
readUnsignedShort()

CDC 1.1.2

Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.