| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
IDataInput インターフェイスには、バイナリデータを読み取る一連のメソッドがあります。このインターフェイスは、バイナリデータを書き込む IDataOutput インターフェイスと同様に I/O 処理を行います。
IDataInput および IDataOutput 操作のすべては、デフォルトでは "bigEndian" (シーケンスの最上位バイトが最下位または最初の記憶領域アドレスに保存されます) で、ブロッキングは発生しません。データが十分にない場合は、EOFError 例外が発生します。IDataInput.bytesAvailable プロパティを使用して、読み取り可能なデータ数を特定します。
データの書き込み時ではなく、読み取り時にのみ符号拡張が問題となります。したがって、IDataInput.readUnsignedByte() と IDataInput.readUnsignedShort() を処理するために書き込みメソッドを分割する必要はありません。つまり、次のようになります。
-
IDataOutput.writeByte() は、IDataInput.readUnsignedByte() および IDataInput.readByte() と共に使用します。
-
IDataOutput.writeShort() は、IDataInput.readUnsignedShort() および IDataInput.readShort() と共に使用します。
例を表示
bytesAvailable:uint [読み取り専用]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
入力バッファで読み取ることができるデータのバイト数を返します。読み取りメソッドを使用する前に、ユーザーコードで bytesAvailable を呼び出して、読み取るデータが十分にあることを確認します。
実装 public function get bytesAvailable():uintendian:String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
データのバイト順序(Endian クラスの BIG_ENDIAN 定数または LITTLE_ENDIAN 定数)です。
実装 public function get endian():String public function set endian(value:String):void関連項目
objectEncoding:uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
readObject() メソッドを使用してバイナリデータの書き込みまたは読み取りを行うときに AMF3 と AMF0 のどちらのフォーマットを使用するかを特定するために使用されます。 この値は、ObjectEncoding クラスの定数です。
実装 public function get objectEncoding():uint public function set objectEncoding(value:uint):void関連項目
public function readBoolean():Boolean| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列からブール値を読み取ります。 1 バイトが読み取られ、バイトがゼロ以外の場合は true、それ以外の場合は false が返されます。
戻り値 | Boolean — バイトがゼロ以外の場合は true、それ以外の場合は false のブール値が返されます。
|
例外 public function readByte():int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から符号付きバイトを読み取ります。
戻り値 | int — 戻り値は -128 ~ 127 の範囲です。
|
例外 public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から、length パラメータで指定したデータバイト数を読み取ります。 このバイトは、bytes パラメータで指定した ByteArray オブジェクトの、offset で指定された位置以降に読み込まれます。
パラメータ
| bytes:ByteArray — データの読み込み先の ByteArray オブジェクトです。
|
| |
| offset:uint (default = 0) — データの読み取りを開始する bytes パラメータへのオフセットです。
|
| |
| length:uint (default = 0) — 読み取るバイト数です。デフォルト値の 0 に設定すると、すべてのデータが読み取られます。
|
例外 public function readDouble():Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 倍精度浮動小数点数を読み取ります。
戻り値 | Number — IEEE 754 倍精度浮動小数点数です。
|
例外 public function readFloat():Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 単精度浮動小数点数を読み取ります。
戻り値 | Number — IEEE 754 単精度浮動小数点数です。
|
例外 public function readInt():int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から符号付き 32 ビット整数を読み取ります。
戻り値 | int — 戻り値は -2147483648 ~ 2147483647 の範囲です。
|
例外 public function readMultiByte(length:uint, charSet:String):String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定した文字セットを使用して、ファイルストリーム、バイトストリームまたはバイト配列から指定した長さのマルチバイトストリングを読み取ります。
パラメータ
| length:uint — バイトストリームから読み取るバイト数です。
|
| |
| charSet:String — バイトの解釈に使用する文字セットを表すストリングです。文字セットのストリングには、"shift-jis"、"cn-gb"、および "iso-8859-1" などがあります。完全な一覧については、「サポートする文字セット」を参照してください。
メモ:charSet パラメータの値が現在のシステムで認識されない場合、Adobe® Flash® Player または Adobe® AIR® は、システムのデフォルトコードページを文字セットとして使用します。 例えば、charSet パラメータの指定で myTest.readMultiByte(22, "iso-8859-01") のように 01 を 1 の代わりに使用した場合、その文字セットパラメータは開発マシンでは認識される場合がありますが、別のマシンでは認識されない可能性があります。もう一方のマシンでは、Flash Player または AIR ランタイムがシステムのデフォルトコードページを使用することになります。
|
戻り値 | String — UTF-8 エンコードされたストリングです。
|
例外 public function readObject():*| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から、AMF 直列化形式でエンコードされたオブジェクトを読み取ります。
戻り値例外関連項目
public function readShort():int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から符号付き 16 ビット整数を読み取ります。
戻り値 | int — 戻り値は -32768 ~ 32767 の範囲です。
|
例外 public function readUnsignedByte():uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から符号なしバイトを読み取ります。
戻り値 | uint — 戻り値は 0 ~ 255 の範囲です。
|
例外 public function readUnsignedInt():uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から符号なし 32 ビット整数を読み取ります。
戻り値 | uint — 戻り値は 0 ~ 4294967295 の範囲です。
|
例外 public function readUnsignedShort():uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から符号なし 16 ビット整数を読み取ります。
戻り値 | uint — 戻り値は 0 ~ 65535 の範囲です。
|
例外 public function readUTF():String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ファイルストリーム、バイトストリームまたはバイト配列から UTF-8 ストリングを読み取ります。 このストリングには、バイト単位の長さを示す符号なし short が前に付いているものと見なされます。
このメソッドは、Java IDataInput インターフェイスの readUTF() メソッドによく似ています。
戻り値 | String — 文字のバイト表現で作成された UTF-8 ストリングです。
|
例外 public function readUTFBytes(length:uint):String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームまたはバイト配列から UTF-8 の バイトのシーケンスを読み取り、ストリングを返します。
パラメータ
| length:uint — 読み取るバイト数です。
|
戻り値 | String — 指定した長さの文字のバイト表現で作成された UTF-8 ストリングです。
|
例外 次の例では、クラス
DataInputExample を使用して、ブールおよび pi の倍精度の浮動小数表現をバイト配列に書き込みます。ここでは以下の手順を実行します。
- 新しい ByteArray オブジェクトインスタンス
byteArr を宣言します。 - バイトと等価のブール値
false および pi の平方根と等価の倍精度の浮動小数を書き込みます。 - ブール値および倍精度浮動小数点数を読み出します。
コードセグメントが最後に追加され、ファイルの終端エラーをチェックして、バイトストリームが最後まで読み取られないことを確認します。
package {
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.errors.EOFError;
public class DataInputExample extends Sprite {
public function DataInputExample() {
var byteArr:ByteArray = new ByteArray();
byteArr.writeBoolean(false);
byteArr.writeDouble(Math.PI);
byteArr.position = 0;
try {
trace(byteArr.readBoolean()); // false
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
try {
trace(byteArr.readDouble()); // 3.141592653589793
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
try {
trace(byteArr.readDouble());
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
}
}
}
© 2009 Adobe Systems Incorporated. All rights reserved.
Thu Mar 19 2009, 08:51 PM -07:00