|
Unofficial "CLDC 1.0 + MIDP 1.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 値を返します。 |
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
が示すサイズとなります。
データの読み出し中に入力ストリームが終端に達した場合は 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)
|
Unofficial "CLDC 1.0 + MIDP 1.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |