Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

java.io
インタフェース DataInput

既知のサブインタフェースの一覧:
Datagram
既知の実装クラスの一覧:
DataInputStream

public interface DataInput

バイナリの入力ストリームから Java のプリミティブ型のデータの読み出しおよび Java 修正 UTF-8 形式を String オブジェクトとして取り出す機構の定義をしています。

このインタフェースの実装は以下の規定を満たす必要があります。

導入されたバージョン:
CLDC 1.0
関連項目:
DataOutput

メソッドの概要
 boolean readBoolean()
          入力ストリームから 1 バイトのデータを読み出し、その値が 0 以外なら true0 ならば 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)
          入力ストリームから指定バイト数分のデータを読み飛ばします。
 

メソッドの詳細

readFully

void readFully(byte[] data)
               throws IOException

入力ストリームから指定された byte 配列へデータを読み出します。 読み出すデータの量は data.length が示すサイズとなります。 読み出しが完了するか例外が throw されるまでブロックします。

データの読み出し中に入力ストリームが終端に達した場合は EOFException を throw します。 それ以外の要因で読み出しに失敗した場合は IOException を throw します。 これらの例外が throw された場合でも、そこまでに読み込んだデータは data に格納されています。

パラメータ:
data - 読み出したデータを格納する byte 配列を渡します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
NullPointerException - datanull が渡された場合に throw します。

readFully

void readFully(byte[] data,
               int index,
               int length)
               throws IOException

入力ストリームから指定バイト数分のデータを指定された byte 配列の指定位置へ読み出します。 このメソッドは指定バイト数のデータの読み出しが完了するか例外が throw されるまでブロックします。

このメソッドで例外が throw されるのは以下の場合です。

これらの例外が throw された場合でも、そこまでに読み込んだデータは data に格納される可能性があります。

パラメータ:
data - 読み出したデータを書き込む byte 配列を渡します。
index - 読み出したデータを書き込み開始する byte 配列の位置を渡します。
length - 読み出すデータのバイト数を渡します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
NullPointerException - datanull が渡された場合に throw します。
IndexOutOfBoundsException - index が負数あるいは index + lengthdata のサイズを超える場合に throw します。

skipBytes

int skipBytes(int length)
              throws IOException

入力ストリームから指定バイト数分のデータを読み飛ばします。 入力ストリームに指定されたバイト数のデータが存在しない場合は入力ストリームに存在する残りのデータを読み飛ばします。 戻り値には実際に読み飛ばしたバイト数を返します。

このメソッドは EOFException を throw することはありません。

パラメータ:
length - 読み飛ばすバイト数を渡します。
戻り値:
実際に読み飛ばしたバイト数を返します。
例外:
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。

readBoolean

boolean readBoolean()
                    throws IOException

入力ストリームから 1 バイトのデータを読み出し、その値が 0 以外なら true0 ならば false を返します。 このメソッドは主に DataOutput インタフェースの writeBoolean メソッドで書き込まれたデータを読み出す場合に使用します。

戻り値:
読み込んだデータが 0 以外ならば true を、0 ならば false を返します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
関連項目:
DataOutput.writeBoolean(boolean)

readByte

byte readByte()
              throws IOException

入力ストリームから 1 バイトのデータを読み出し、その値を byte 型の値として返します。 このメソッドは主に DataOutput インタフェースの writeByte メソッドで書き込まれたデータを読み出す場合に使用します。

戻り値:
読み出したデータを返します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
関連項目:
DataOutput.writeByte(int)

readUnsignedByte

int readUnsignedByte()
                     throws IOException

入力ストリームから 1 バイトのデータを読み出し、その値を int 型へ0拡張して返します。 このメソッドは主に DataOutput インタフェースの writeByte メソッドで書き込まれたデータを 0255 の間の数値として読み出したい場合に使用します。

戻り値:
読み出したデータを返します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
関連項目:
DataOutput.writeByte(int)

readShort

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)

readUnsignedShort

int readUnsignedShort()
                      throws IOException

入力ストリームから 2 バイトのデータを読み出し、その値をビッグ・エンディアンで組み立て0拡張した値を返します。 1バイト目のデータを first、2バイト目のデータを second とすると以下の様になります。

     ((first & 0xff) << 8) | (second & 0xff)

このメソッドは主に DataOutput インタフェースの writeShort メソッドで書き込まれたデータを 065535 の符号なしの値として読み出す場合に使用します。

戻り値:
読み出したデータを返します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
関連項目:
DataOutput.writeShort(int)

readChar

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)

readInt

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)

readLong

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)

readUTF

String readUTF()
               throws IOException

入力ストリームから Java 修正 UTF-8 形式の文字列を読み出し、String オブジェクトとして返します。 このメソッドは以下の手順で Java 修正 UTF-8 の文字列を読み込みます。

  1. 入力ストリームから2バイトのデータを読み出します。
  2. 読み出した2バイトを readUnsignedShort() と同じ方法で評価します。この値を以下 UTF 長と呼びます。
  3. 入力ストリームから UTF 超が示すバイト数を読み出します。
  4. 読み出したデータを Java 修正 UTF-8 形式で Unicode へ変換します。
  5. Unicode へ変換されたデータを String オブジェクトに変換します。

Java 修正 UTF-8 は以下の様に規定されています。

この Java 修正 UTF-8 は以下の点で標準 UTF-8 と異なります。

null 文字を1バイトで表現しないのは Java 修正 UTF-8 符号化した際に、そのコード中に null 文字が現れないようにするためです。

このメソッドは主に DataOutput インタフェースの writeUTF メソッドで書き込まれたデータを読み出す場合に使用します。

datanull の場合、NullPointerException を throw します。

戻り値:
読み出した結果文字列を返します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
UTFDataFormatException - 入力ストリームから読み出したデータが Java 修正 UTF-8 形式として不正な場合に throw します。
NullPointerException - datanull が渡された場合に throw します。
関連項目:
DataOutput.writeUTF(java.lang.String)

readFloat

float readFloat()
                throws IOException

入力ストリームから 4 バイトのデータを読み出し、float 値を返します。 4 バイトのデータはまず readInt メソッドと同じ評価方法で int 値へ変換し、それを IEEE 754 浮動小数点の単精度フォーマット(Single Format)のビット配列とみなします。 このメソッドは主に DataOutput インタフェースの writeFloat メソッドで書き込まれたデータを読み出す場合に使用します。

戻り値:
読み出したデータを返します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
導入されたバージョン:
CLDC 1.1
関連項目:
DataOutput.writeFloat(float)

readDouble

double readDouble()
                  throws IOException

入力ストリームから 8 バイトのデータを読み出し、double 値を返します。 8 バイトのデータはまず readLong メソッドと同じ評価方法で long 値へ変換し、それを IEEE 754 浮動小数点の倍精度フォーマット(Double Format)のビット配列とみなします。 このメソッドは主に DataOutput インタフェースの writeDouble メソッドで書き込まれたデータを読み出す場合に使用します。

戻り値:
読み出したデータを返します。
例外:
EOFException - データを最後まで読み出す前に入力ストリームが終端に達した場合に throw します。
IOException - 入力ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
導入されたバージョン:
CLDC 1.1
関連項目:
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 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009,2011 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.0 + MIDP 1.0" API Reference はこちらです。