|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object
|
+--java.io.InputStream
|
+--java.io.FilterInputStream
|
+--java.io.DataInputStream
データ入力ストリームにより、アプリケーションは、プリミティブ型の 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 つの点で異なります。
'\u0000' は 1 バイトではなく、2 バイト形式にコード化されます。これにより、コード化された文字列がその中に埋め込まれた null を持つことはありません。
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()
DataInput の readBoolean メソッドの汎用規約を参照してください。
|
byte |
readByte()
DataInput の readByte メソッドの汎用規約を参照してください。
|
char |
readChar()
DataInput の readChar メソッドの汎用規約を参照してください。
|
double |
readDouble()
DataInput の readDouble メソッドの汎用規約を参照してください。
|
float |
readFloat()
DataInput の readFloat メソッドの汎用規約を参照してください。
|
void |
readFully(byte[] b)
DataInput の readFully メソッドの汎用規約を参照してください。
|
void |
readFully(byte[] b,
int off,
int len)
DataInput の readFully メソッドの汎用規約を参照してください。
|
int |
readInt()
DataInput の readInt メソッドの汎用規約を参照してください。
|
String |
readLine()
推奨されていません。 このメソッドは、バイトを適切に文字列に変換しません。JDK 1.1 では、テキスト行を読み込む方法としては BufferedReader.readLine() メソッドを使うことが推奨されています。行を読み込むのに DataInputStream クラスを使うプログラムを、BufferedReader クラスを使うように変換するには、次の形式のコードを、
次の形式のコードで置き換えます。
|
long |
readLong()
DataInput の readLong メソッドの汎用規約を参照してください。
|
short |
readShort()
DataInput の readShort メソッドの汎用規約を参照してください。
|
int |
readUnsignedByte()
DataInput の readUnsignedByte メソッドの汎用規約を参照してください。
|
int |
readUnsignedShort()
DataInput の readUnsignedShort メソッドの汎用規約を参照してください。
|
String |
readUTF()
DataInput の readUTF メソッドの汎用規約を参照してください。
|
static String |
readUTF(DataInput in)
Java 修正 UTF-8 形式でコード化された Unicode 文字列表現を、ストリーム in から読み込みます。 |
int |
skipBytes(int n)
DataInput の skipBytes メソッドの汎用規約を参照してください。
|
| クラス java.io.FilterInputStream から継承したメソッド |
available, close, mark, markSupported, read, reset, skip |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public DataInputStream(InputStream in)
FilterInputStream を作成し、その引数である入力ストリーム in をあとで使用できるように保存します。内部バッファ配列が作成され、buf に格納されます。
in - 入力ストリーム| メソッドの詳細 |
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 内の readb - データの読み込み先のバッファ
-1
IOException - 入出力エラーが発生した場合FilterInputStream.in,
InputStream.read(byte[], int, int)
public final int read(byte[] b,
int off,
int len)
throws IOException
len バイトまでのデータをバイト配列に読み込みます。len までのバイトの読み込みが試行されますが、読み込まれるバイト数はもっと少ない場合もあり、0 の場合もあります。実際に読み込まれたバイト数は整数として返されます。
このメソッドは、入力データが読み込めるようになるか、ファイルの終わりが検出されるか、あるいは例外がスローされるまでブロックします。
b が null の場合は、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 内の readb - データの読み込み先のバッファoff - データの開始オフセットlen - 読み込まれる最大バイト数
-1
IOException - 入出力エラーが発生した場合FilterInputStream.in,
InputStream.read(byte[], int, int)
public final void readFully(byte[] b)
throws IOException
DataInput の readFully メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readFullyb - データの読み込み先のバッファ
EOFException - すべてのバイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final void readFully(byte[] b,
int off,
int len)
throws IOException
DataInput の readFully メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readFullyb - データの読み込み先のバッファoff - データの開始オフセットlen - 読み込むバイト数
EOFException - すべてのバイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final int skipBytes(int n)
throws IOException
DataInput の skipBytes メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の skipBytesn - スキップするバイト数
IOException - 入出力エラーが発生した場合
public final boolean readBoolean()
throws IOException
DataInput の readBoolean メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readBooleanboolean の値
EOFException - 入力ストリームが終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final byte readByte()
throws IOException
DataInput の readByte メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readBytebyte と見なされる入力ストリームの次のバイト
EOFException - 入力ストリームが終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final int readUnsignedByte()
throws IOException
DataInput の readUnsignedByte メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readUnsignedByteEOFException - 入力ストリームが終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final short readShort()
throws IOException
DataInput の readShort メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readShortEOFException - 2 バイトを読み終わる前に入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final int readUnsignedShort()
throws IOException
DataInput の readUnsignedShort メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readUnsignedShortEOFException - 2 バイトを読み終わる前に入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final char readChar()
throws IOException
DataInput の readChar メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readCharEOFException - 2 バイトを読み終わる前に入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final int readInt()
throws IOException
DataInput の readInt メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readIntint と解釈した値
EOFException - 4 バイトを読み終わる前に入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final long readLong()
throws IOException
DataInput の readLong メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readLonglong と解釈した値
EOFException - 8 バイトを読み終わる前に入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合FilterInputStream.in
public final float readFloat()
throws IOException
DataInput の readFloat メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readFloatfloat と解釈した値
EOFException - 4 バイトを読み終わる前に入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合readInt(),
Float.intBitsToFloat(int)
public final double readDouble()
throws IOException
DataInput の readDouble メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readDoubledouble と解釈した値
EOFException - 8 バイトを読み終わる前に入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合readLong(),
Double.longBitsToDouble(long)
public final String readLine()
throws IOException
BufferedReader.readLine() メソッドを使うことが推奨されています。行を読み込むのに DataInputStream クラスを使うプログラムを、BufferedReader クラスを使うように変換するには、次の形式のコードを、
DataInputStream d = new DataInputStream(in);
次の形式のコードで置き換えます。
BufferedReader d
= new BufferedReader(new InputStreamReader(in));
DataInput の readLine メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readLineIOException - 入出力エラーが発生した場合BufferedReader.readLine(),
FilterInputStream.in
public final String readUTF()
throws IOException
DataInput の readUTF メソッドの汎用規約を参照してください。
このオペレーションのバイトは、格納されている入力ストリームから読み込まれます。
DataInput 内の readUTFEOFException - すべてのバイトを読み込む前に、この入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合readUTF(java.io.DataInput)
public static final String readUTF(DataInput in)
throws IOException
in から読み込みます。読み込まれた文字列は、String として返されます。修正 UTF-8 表現の詳細は、DataInput の readUTF メソッドのものと完全に一致します。
in - データ入力ストリーム
EOFException - すべてのバイトを読み終わる前に入力ストリームの終わりに達した場合
IOException - 入出力エラーが発生した場合
UTFDataFormatException - 文字列中のバイトが、有効な UTF-8 形式でコード化された Unicode 文字列以外であった場合readUnsignedShort()
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
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.