|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
public interface DataInput
バイナリの入力ストリームから Java のプリミティブ型のデータの読み出しおよび Java 修正 UTF-8 形式を String オブジェクトとして取り出す機構の定義をしています。
このインタフェースの実装は以下の規定を満たす必要があります。
EOFException を throw しなければなりません。
IOException を throw しなければなりません。
DataOutput| メソッドの概要 | |
|---|---|
boolean |
readBoolean()
入力ストリームから 1 バイトのデータを読み出し、その値が 0 以外なら true を 0 ならば false を返します。 |
byte |
readByte()
入力ストリームから 1 バイトのデータを読み出し、その値を byte 型の値として返します。 |
char |
readChar()
入力ストリームから 2 バイトのデータを読み出し、ビッグ・エンディアンとして評価した char 値を返します。 |
double |
readDouble()
入力ストリームから 8 バイトのデータを読み出し、double 値を返します。 |
float |
readFloat()
入力ストリームから 4 バイトのデータを読み出し、float 値を返します。 |
void |
readFully(byte[] data)
入力ストリームから指定された byte 配列へデータを読み出します。 |
void |
readFully(byte[] data,
int index,
int length)
入力ストリームから指定バイト数分のデータを指定された byte 配列の指定位置へ読み出します。 |
int |
readInt()
入力ストリームから 4 バイトのデータを読み出し、ビッグ・エンディアンとして評価した int 値を返します。 |
long |
readLong()
入力ストリームから 8 バイトのデータを読み出し、ビッグ・エンディアンとして評価した long 値を返します。 |
short |
readShort()
入力ストリームから 2 バイトのデータを読み出し、ビッグ・エンディアンとして評価した short 値を返します。 |
int |
readUnsignedByte()
入力ストリームから 1 バイトのデータを読み出し、その値を int 型へ0拡張して返します。 |
int |
readUnsignedShort()
入力ストリームから 2 バイトのデータを読み出し、その値をビッグ・エンディアンで組み立て0拡張した値を返します。 |
String |
readUTF()
入力ストリームから Java 修正 UTF-8 形式の文字列を読み出し、 String オブジェクトとして返します。 |
int |
skipBytes(int length)
入力ストリームから指定バイト数分のデータを読み飛ばします。 |
| メソッドの詳細 |
|---|
void readFully(byte[] data)
throws IOException
入力ストリームから指定された byte 配列へデータを読み出します。
読み出すデータの量は data.length が示すサイズとなります。
読み出しが完了するか例外が throw されるまでブロックします。
データの読み出し中に入力ストリームが終端に達した場合は EOFException を throw します。
それ以外の要因で読み出しに失敗した場合は IOException を throw します。
これらの例外が throw された場合でも、そこまでに読み込んだデータは data に格納されています。
data - 読み出したデータを格納する byte 配列を渡します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
NullPointerException - data に null が渡された場合に throw します。
void readFully(byte[] data,
int index,
int length)
throws IOException
入力ストリームから指定バイト数分のデータを指定された byte 配列の指定位置へ読み出します。
このメソッドは指定バイト数のデータの読み出しが完了するか例外が throw されるまでブロックします。
このメソッドで例外が throw されるのは以下の場合です。
EOFException を throw します。
IOException を throw します。
index が負数あるいは index + length が data のサイズを超える場合は IndexOutOfBoundsException が throw されます。
data が null 場合は NullPointerException が throw されます。
これらの例外が throw された場合でも、そこまでに読み込んだデータは data に格納される可能性があります。
data - 読み出したデータを書き込む byte 配列を渡します。index - 読み出したデータを書き込み開始する byte 配列の位置を渡します。length - 読み出すデータのバイト数を渡します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
NullPointerException - data に null が渡された場合に throw します。
IndexOutOfBoundsException - index が負数あるいは index + length が data のサイズを超える場合に throw します。
int skipBytes(int length)
throws IOException
入力ストリームから指定バイト数分のデータを読み飛ばします。 入力ストリームに指定されたバイト数のデータが存在しない場合は入力ストリームに存在する残りのデータを読み飛ばします。 戻り値には実際に読み飛ばしたバイト数を返します。
このメソッドは EOFException を throw することはありません。
length - 読み飛ばすバイト数を渡します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
boolean readBoolean()
throws IOException
入力ストリームから 1 バイトのデータを読み出し、その値が 0 以外なら true を 0 ならば false を返します。
このメソッドは主に DataOutput インタフェースの writeBoolean メソッドで書き込まれたデータを読み出す場合に使用します。
0 以外ならば true を、0 ならば false を返します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeBoolean(boolean)
byte readByte()
throws IOException
入力ストリームから 1 バイトのデータを読み出し、その値を byte 型の値として返します。
このメソッドは主に DataOutput インタフェースの writeByte メソッドで書き込まれたデータを読み出す場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeByte(int)
int readUnsignedByte()
throws IOException
入力ストリームから 1 バイトのデータを読み出し、その値を int 型へ0拡張して返します。
このメソッドは主に DataOutput インタフェースの writeByte メソッドで書き込まれたデータを 0 〜 255 の間の数値として読み出したい場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeByte(int)
short readShort()
throws IOException
入力ストリームから 2 バイトのデータを読み出し、ビッグ・エンディアンとして評価した short 値を返します。
1バイト目のデータを first、2バイト目のデータを second とすると以下の様になります。
(short) ((first & 0xff) << 8) | (second & 0xff)
このメソッドは主に DataOutput インタフェースの writeShort メソッドで書き込まれたデータを読み出す場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeShort(int)
int readUnsignedShort()
throws IOException
入力ストリームから 2 バイトのデータを読み出し、その値をビッグ・エンディアンで組み立て0拡張した値を返します。
1バイト目のデータを first、2バイト目のデータを second とすると以下の様になります。
((first & 0xff) << 8) | (second & 0xff)
このメソッドは主に DataOutput インタフェースの writeShort メソッドで書き込まれたデータを 0 〜 65535 の符号なしの値として読み出す場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeShort(int)
char readChar()
throws IOException
入力ストリームから 2 バイトのデータを読み出し、ビッグ・エンディアンとして評価した char 値を返します。
1バイト目のデータを first、2バイト目のデータを second とすると以下の様になります。
(char) ((first & 0xff) << 8) | (second & 0xff)
このメソッドは主に DataOutput インタフェースの writeChar メソッドで書き込まれたデータを読み出す場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeChar(int)
int readInt()
throws IOException
入力ストリームから 4 バイトのデータを読み出し、ビッグ・エンディアンとして評価した int 値を返します。
1バイト目のデータを first、2バイト目のデータを second、3バイト目のデータを third、4バイト目のデータを fourth とすると以下の様になります。
((first & 0xff) << 24) | ((second & 0xff) << 16) |
((third & 0xff) << 8) | (fourth & 0xff)
このメソッドは主に DataOutput インタフェースの writeInt メソッドで書き込まれたデータを読み出す場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeInt(int)
long readLong()
throws IOException
入力ストリームから 8 バイトのデータを読み出し、ビッグ・エンディアンとして評価した long 値を返します。
1バイト目のデータを d1、2バイト目のデータを d2、3バイト目のデータを d3、以下8バイト目まで同じとすると以下の様になります。
( ((long) (d1 & 0xff) << 56) | ((long) (d2 & 0xff) << 48) |
((long) (d3 & 0xff) << 40) | ((long) (d4 & 0xff) << 32) |
((long) (d5 & 0xff) << 24) | ((long) (d1 & 0xff) << 16) |
((long) (d1 & 0xff) << 8) | ((long) (d1 & 0xff)) )
このメソッドは主に DataOutput インタフェースの writeLong メソッドで書き込まれたデータを読み出す場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeLong(long)
String readUTF()
throws IOException
入力ストリームから Java 修正 UTF-8 形式の文字列を読み出し、String オブジェクトとして返します。
このメソッドは以下の手順で Java 修正 UTF-8 の文字列を読み込みます。
readUnsignedShort() と同じ方法で評価します。この値を以下 UTF 長と呼びます。
String オブジェクトに変換します。
Java 修正 UTF-8 は以下の様に規定されています。
'\u0001' 〜 '\u007f' の文字は以下のフォーマットで1バイトのデータとして表現されます。
| ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 値 | 0 | コードの 0 〜 7 ビット | ||||||
null 文字である '\u0000' と '\u0080' 〜 '\u07ff' の文字は以下のフォーマットで2バイトのデータとして表現されます。
| ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 値 | 1 | 1 | 0 | コードの 6 〜 10 ビット | ||||
| ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 値 | 1 | 0 | コードの 0 〜 5 ビット | |||||
'\u0800' 〜 '\uffff' の文字は以下のフォーマットで3バイトのデータとして表現されます。
| ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 値 | 1 | 1 | 1 | 0 | コードの 12 〜 15 ビット | |||
| ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 値 | 1 | 0 | コードの 6 〜 11 ビット | |||||
| ビット | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 値 | 1 | 0 | コードの 0 〜 5 ビット | |||||
この Java 修正 UTF-8 は以下の点で標準 UTF-8 と異なります。
null 文字である '\u0000' が1バイトではなく2バイトで表されます。
null 文字を1バイトで表現しないのは Java 修正 UTF-8 符号化した際に、そのコード中に null 文字が現れないようにするためです。
このメソッドは主に DataOutput インタフェースの writeUTF メソッドで書き込まれたデータを読み出す場合に使用します。
data が null の場合、NullPointerException を throw します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
UTFDataFormatException - 入力ストリームから読み出したデータが Java 修正 UTF-8 形式として不正な場合に throw します。
NullPointerException - data に null が渡された場合に throw します。DataOutput.writeUTF(java.lang.String)
float readFloat()
throws IOException
入力ストリームから 4 バイトのデータを読み出し、float 値を返します。
4 バイトのデータはまず readInt メソッドと同じ評価方法で int 値へ変換し、それを IEEE 754 浮動小数点の単精度フォーマット(Single Format)のビット配列とみなします。
このメソッドは主に DataOutput インタフェースの writeFloat メソッドで書き込まれたデータを読み出す場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeFloat(float)
double readDouble()
throws IOException
入力ストリームから 8 バイトのデータを読み出し、double 値を返します。
8 バイトのデータはまず readLong メソッドと同じ評価方法で long 値へ変換し、それを IEEE 754 浮動小数点の倍精度フォーマット(Double Format)のビット配列とみなします。
このメソッドは主に DataOutput インタフェースの writeDouble メソッドで書き込まれたデータを読み出す場合に使用します。
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。DataOutput.writeDouble(double)
|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
| 公式仕様書原文の著作権表記等(※): Mobile Information Device Profile Specification ("Specification") Version: 2.0 Status: FCS Release: November 5, 2002 Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc. All rights reserved. | ※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |
