全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.io.DataInputStream

java.lang.Object
   |
   +----java.io.InputStream
           |
           +----java.io.FilterInputStream
                   |
                   +----java.io.DataInputStream

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 ビット 0-7

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

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

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

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

参照:
DataOutputStream

Constructor Index

 o DataInputStream(InputStream)
指定された入力ストリームからデータを読み込むための、データ入力ストリームを新規作成する。

Method Index

 o read(byte[])
データ入力ストリームから最大 byte.length バイトのデータをバイト配列に読み込む。
 o read(byte[], int, int)
データ入力ストリームから最大 len バイトのデータをバイト配列に読み込む。
 o readBoolean()
データ入力ストリームから boolean を読み込む。
 o readByte()
データ入力ストリームから符号付き 8-bit データを読み込む。
 o readChar()
データ入力ストリームから Unicode 文字を読み込む。
 o readDouble()
データ入力ストリームから double データを読み込む。
 o readFloat()
データ入力ストリームから float データを読み込む。
 o readFully(byte[])
データ入力ストリームから b.length バイトのデータをバイト配列に読み込む。
 o readFully(byte[], int, int)
データ入力ストリームから正確に len バイトのデータをバイト配列に読み込む。
 o readInt()
データ入力ストリームから符号付き 32-bit 整数を読み込む。
 o readLine()
データ入力ストリームから次の行のテキストを読み込む。 推奨されない。
 o readLong()
データ入力ストリームから符号付き 64-bit 整数を読み込む。
 o readShort()
データ入力ストリームから符号付き 16-bit 数値を読み込む。
 o readUnsignedByte()
データ入力ストリームから符号無し 8-bit 数値を読み込む。
 o readUnsignedShort()
データ入力ストリームから符号無し 16-bit 数値を読み込む。
 o readUTF()
データ入力ストリームから、修正 UTF-8 形式でエンコードされた文字列を読み込む。
 o readUTF(DataInput)
指定されたデータ入力ストリームから文字列を読み込む。
 o skipBytes(int)
下層入力ストリームで、入力を正確に n バイトをスキップする。

Constructors

 o DataInputStream
  public DataInputStream(InputStream in)
指定された入力ストリームからデータを読み込むためのデータ入力ストリームを新規作成します。

パラメータ:
in - 入力ストリーム。

Methods

 o read
 public final int read(byte b[]) throws IOException
データ入力ストリームから最大 byte.length バイトのデータをバイト配列に読み込みます。 このメソッドは何らかの入力が可能になるまでブロックします。

DataInputStreamreadメソッドはその下層ストリームの readメソッドを3種類の引数 b0、および b.lengthを指定して呼び出し、そのメソッドの返り値を返します。

パラメータ:
b - データが読み込まれるバッファ。
返り値:
バッファに読み込まれた全バイト数。ストリームの最後尾に達してデータが存在しない場合は -1
例外: IOException
I/O エラーが発生した場合。
オーバーライド:
FilterInputStream クラスの read
参照:
in, read
 o read
 public final int read(byte b[],
                       int off,
                       int len) throws IOException
データ入力ストリームから最大 len バイトのデータをバイト配列に読み込みます。 このメソッドは何らかの入力が可能になるまでブロックします。

DataInputStreamreadメソッドはその下層ストリームの readメソッドを同じ引数を指定して呼び出し、何であれこのメソッドが返り値を返します。

パラメータ:
b - データを読み込むバッファ。
off - データの開始位置オフセット。
len - 読み込まれたバイト数の最大値。
返り値:
バッファに読み込まれた全バイト数。ストリームの最後尾に達してデータが存在しない場合は -1
例外: IOException
I/O エラーが発生した場合。
オーバーライド:
FilterInputStream クラスのread
参照:
in, read
 o readFully
 public final void readFully(byte b[]) throws IOException
データ入力ストリームから b.length バイトのデータをバイト配列に読み込みます。 このメソッドは全部のバイト数を読み終わるまで何度でも下層ストリームから読み込もうとします。このメソッドは全てのバイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

パラメータ:
b - データが読み込まれるバッファ。
例外: EOFException
全部のバイトを読み終わる前に入力ストリームの終端に達した場合は。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readFully
 public final void readFully(byte b[],
                             int off,
                             int len) throws IOException
データ入力ストリームから正確に len バイトのデータをバイト配列に読み込みます。 このメソッドは全部のバイト数を読み終わるまで何度でも下層ストリームから読み込もうとします。このメソッドは全てのバイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

パラメータ:
b - データが読み込まれるバッファ。
off - データの開始位置オフセット。
len - 読み込みを行うバイト数。
例外: EOFException
全部のバイトを読み終わる前に入力ストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o skipBytes
 public final int skipBytes(int n) throws IOException
下層ストリームの入力で正確に n バイトをスキップします。 このメソッドは全てのバイトがスキップされるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

パラメータ:
n - スキップするバイト数。
返り値:
スキップされたバイト数。この値は常に n
例外: EOFException
全部のバイトをスキップし終わる前に入力ストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
 o readBoolean
 public final boolean readBoolean() throws IOException
データ入力ストリームから boolean を読み込みます。このメソッドは下層入力ストリームから1個のバイトを読み込みます。その値が 0 ならば falseを表し、それ以外の値ならば true を表します。このメソッドは1バイト読み込むか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
読み込んだ boolean 値。
例外: EOFException
入力ストリームが終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readByte
 public final byte readByte() throws IOException
データ入力ストリームから符号付き 8-bit データを読み込みます。このメソッドは下層の入力ストリームから1個のバイトを読み込みます。もし読み込んだバイト b が 0 <= b <= 255 ならば、得られる結果は、次のようになります。
     (byte)(b)
 

このメソッドは1バイト読み込むか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
入力ストリームの次のバイトを符号付き 8-bit byteとして返す。
例外: EOFException
入力ストリームが終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readUnsignedByte
 public final int readUnsignedByte() throws IOException
データ入力ストリームから符号無し 8-bit 数を読み込みます。このメソッドは下層入力ストリームから1個のバイトを読み込み、そのバイトを返します。このメソッドは1バイト読み込むか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
入力ストリームの次のバイトを符号無し 8-bitと解釈した数値を返す。
例外: EOFException
入力ストリームが終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readShort
 public final short readShort() throws IOException
データ入力ストリームから符号付き 16-bit 数を読み込みます。このメソッドは下層入力ストリームから 2バイトを読み込みます。読み込まれた2バイトをその順に b1b2 とし、それぞれが 0 から 255 の値をとるものとすれば、得られる結果は次のようになります。
     (short)((b1 << 8) | b2)
 

このメソッドは 2バイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
ストリームの続く 2バイトを符号付き 16ビットと解釈した数を返す。
例外: EOFException
2バイトを読み終わる前にストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readUnsignedShort
 public final int readUnsignedShort() throws IOException
データ入力ストリームから符号無し 16-bit 数を読み込みます。このメソッドは下層入力ストリームから 2バイトを読み込みます。読み込まれた2バイトをその順に b1b2 とし、それぞれが 0 から 255 の値をとるものとすれば、得られる結果は次のようになります。
     (b1 << 8) | b2
 

このメソッドは 2バイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
ストリームの続く 2バイトを符号無し 16ビットと解釈した整数値を返す。
例外: EOFException
2バイトを読み終わる前にストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readChar
 public final char readChar() throws IOException
データ入力ストリームから Unicode文字を読み込みます。このメソッドは下層入力ストリームから 2バイトを読み込みます。読み込まれた2バイトをその順に b1b2 とし、 0 <= b1b1 <= 255 であるならば、得られる結果は次のようになります。
     (char)((b1 << 8) | b2)
 

このメソッドは 2バイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
ストリームの次の 2バイトを Unicode文字として返す。
例外: EOFException
2バイトを読み終わる前にストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readInt
 public final int readInt() throws IOException
データ入力ストリームから符号付きの 32-bit 整数を読み込みます。このメソッドは下層入力ストリームから 4バイトを読み込みます。読み込まれた4バイトをその順に b1b2b3、および b4とし、 0 <= b1b2b3b4 <= 255 であるならば得られる結果は次のようになります。
     (b1 << 24) | (b2 << 16) + (b3 << 8) +b4
 

このメソッドは 4バイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
ストリームの次の 4バイトを int と解釈した値を返す。
例外: EOFException
4バイトを読み終わる前にストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readLong
 public final long readLong() throws IOException
データ入力ストリームから符号付き 64-bit整数値を読み込みます。このメソッドは下層入力ストリームから 8バイトを読み込みます。読み込まれた8バイトをその順に b1b2b3b4b5b6b7、および b8 とすると、
     0 <= b1, b2, b3, b4, b5, b6, b7, b8 <= 255,
 

得られる結果は次のようになります。

     ((long)b1 << 56) + ((long)b2 << 48) +
        ((long)b3 << 40) + ((long)b4 << 32) +
        ((long)b5 << 24) + (b6 << 16) +
        (b7 << 8) + b8
 

このメソッドは 8バイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
入力ストリームの次の 8バイトを、 long と解釈した値を返す。
例外: EOFException
8バイトを読み終わる前にストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
in
 o readFloat
 public final float readFloat() throws IOException
データ入力ストリームから float を読み込みます。このメソッドは readIntメソッドと同じ方法で intを読み込み、この intFloatクラスの intBitsToFloatメソッドを使って float へ変換します。 このメソッドは 4バイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
入力ストリームの次の 4バイトを float と解釈した値を返す。
例外: EOFException
4バイトを読み終わる前にストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
readInt, intBitsToFloat
 o readDouble
 public final double readDouble() throws IOException
データ入力ストリームから double を読み込みます。このメソッドは readLongメソッドと同じ方法で longを読み込み、この longDoubleクラスの longBitsToDoubleメソッドを使って double へ変換します。

このメソッドは 8バイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
入力ストリームの次の 8バイトを double と解釈した値を返す。
例外: EOFException
8バイトを読み終わる前にストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
readLong, longBitsToDouble
 o readLine
 public final String readLine() throws IOException
注意: readLine() の使用は推奨されません。 このメソッドはバイトから文字への変換を正しく行いません。 JDK 1.1 については、テキスト行を読み込む好ましい方法は、BufferedReader.readLine() メソッドを経由することです。 行を読み込むために DataInputStream クラスを使用するプログラムは、次の形式のコードを置換して BufferedReader クラスを使用するために変換することができます:
     DataInputStream d = new DataInputStream(in);
 
上記を以下で置換:
     BufferedReader d
          = new BufferedReader(new InputStreamReader(in));
 

データ入力ストリームからテキストの次の1行を読み込みます。このメソッドは下層の入力ストリームから、行末に達するまで繰り返してバイト単位の読み込みを行います。

テキスト行は復帰文字 ('\r')、改行文字('\n')、復帰文字と改行文字を続けた文字、または入力ストリームの終了で終端さされます。返される文字列にはこれらの行終端記号は含まれません。

このメソッドは改行文字が読み込まれるか、復帰文字とそれに続くバイト(改行文字かどうかのチェック)が読み込まれるか、ストリームの終了が検出されるか、または例外がスローされるまでブロックします。

返り値:
入力ストリームからの次のテキスト行。
例外: IOException
I/O エラーが発生した場合。
参照:
readLine, in
 o readUTF
 public final String readUTF() throws IOException
データ入力ストリームから修正 UTF-8形式でエンコードされた文字列を読み込みます。このメソッドは readUTF(this)を呼び出します。 この形式の更に詳しい説明については、 readUTF(java.io.DataInput) の項を参照してください。

このメソッドは全てのバイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

返り値:
Unicode 文字列。
例外: EOFException
全部のバイトを読み終わる前に入力ストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
参照:
readUTF
 o 
readUTF
 public static final String readUTF(DataInput in) throws IOException
指定されたデータ入力ストリームから文字列を読み込みます。この文字列は修正 UTF-8 形式でエンコードされたものです。

最初の 2バイトは readUnsignedShortと同じ方法で読み込まれます。この値はそれに続くエンコードされた文字列に含まれるバイト数を示します(文字列の長さではありません)。続くバイトは UTF-8形式でエンコードされた文字列と解釈され、文字型に変換されます。

このメソッドは全部のバイトを読み終わるか、ストリームの終端が検出されるか、または例外がスローされるまでブロックします。

パラメータ:
in - データ入力ストリーム。
返り値:
Unicode 文字列。
例外: EOFException
全部のバイトを読み終わる前に入力ストリームの終端に達した場合。
例外: IOException
I/O エラーが発生した場合。
例外: UTFDataFormatException
バイト列が Unicode 文字列を UTF-8エンコードした有効表現以外を含む場合。
参照:
readUnsignedShort

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス