JavaTM Platform
Standard Ed. 6

java.io
クラス DataInputStream

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

public class DataInputStream
extends FilterInputStream
implements DataInput

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

DataInputStream は、マルチスレッドアクセスに対して必ずしも安全ではありません。スレッドの安全性はこのクラスのメソッドを使用するユーザーによってオプションで保証されます。

導入されたバージョン:
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)
          修正 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] は影響を受けません。  

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 の場合もあります。実際に読み込まれたバイト数は整数として返されます。  

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

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] は影響を受けません。

オーバーライド:
クラス FilterInputStream 内の read
パラメータ:
b - データの読み込み先のバッファ
off - 転送先の配列 b 内での開始オフセット
len - 読み込まれる最大バイト数
戻り値:
バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
例外:
NullPointerException - bnull の場合
IndexOutOfBoundsException - off が負の場合、len が負の場合、または lenb.length - off よりも大きい場合
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 バイトを char と解釈した値
例外:
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

@Deprecated
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
修正 UTF-8 形式でエンコードされた Unicode 文字列表現を、ストリーム in から読み込みます。読み込まれた文字列は、String として返されます。修正 UTF-8 表現の詳細は、DataInputreadUTF メソッドのものと完全に一致します。

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

JavaTM Platform
Standard Ed. 6

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

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