JavaTM 2
Platform
Std. Ed. v1.4.0

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 Company Ltd., "File System Safe UCS Transformation Format (FSS_UTF)", X/Open Preliminary Specification, Document Number: P316 を参照。これに関する情報は ISO/IEC 10646, Annex P にもある)。次の表では、左端の列が最上位ビットです。

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

0 ビット 6-0

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

1 1 0 ビット 10-6
1 0 ビット 5-0

'\u0800''\uFFFF' の範囲の文字は 3 個のバイトで表現されます。
1 1 1 0 ビット 15-12
1 0 ビット 11-6
1 0 ビット 5-0

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

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

フィールドの概要
 
クラス java.io.FilterInputStream から継承したフィールド
in
 
コンストラクタの概要
DataInputStream(InputStream in)
          FilterInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。
 
メソッドの概要
 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)
FilterInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。内部バッファ配列が作成され、buf に格納されます。

パラメータ:
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 - 入出力エラーが発生した場合
関連項目:
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 - 文字列中のバイトが、有効な UTF-8 形式でコード化された Unicode 文字列以外であった場合
関連項目:
readUnsignedShort()

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.