パッケージflash.utils
インターフェイスpublic interface IDataInput
実装者 ByteArray, FileStream, Socket, URLStream

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

IDataInput インターフェイスには、バイナリデータを読み取る一連のメソッドがあります。このインターフェイスは、バイナリデータを書き込む IDataOutput インターフェイスと同様に I/O 処理を行います。

IDataInput および IDataOutput 操作のすべては、デフォルトでは "bigEndian" (シーケンスの最上位バイトが最下位または最初の記憶領域アドレスに保存されます) で、ブロッキングは発生しません。データが十分にない場合は、EOFError 例外が発生します。IDataInput.bytesAvailable プロパティを使用して、読み取り可能なデータ数を特定します。

データの書き込み時ではなく、読み取り時にのみ符号拡張が問題となります。したがって、IDataInput.readUnsignedByte()IDataInput.readUnsignedShort() を処理するために書き込みメソッドを分割する必要はありません。つまり、次のようになります。

例を表示

関連項目

IDataOutput インターフェイス
endian
FileStream クラス
Socket クラス
URLStream クラス
ByteArray クラス
EOFError クラス


パブリックプロパティ
 プロパティ定義元
  bytesAvailable : uint
[読み取り専用] 入力バッファで読み取ることができるデータのバイト数を返します。
IDataInput
  endian : String
データのバイト順序(Endian クラスの BIG_ENDIAN 定数または LITTLE_ENDIAN 定数)です。
IDataInput
  objectEncoding : uint
readObject() メソッドを使用してバイナリデータの書き込みまたは読み取りを行うときに AMF3 と AMF0 のどちらのフォーマットを使用するかを特定するために使用されます。
IDataInput
パブリックメソッド
 メソッド定義元
  
ファイルストリーム、バイトストリームまたはバイト配列からブール値を読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から符号付きバイトを読み取ります。
IDataInput
  
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
ファイルストリーム、バイトストリームまたはバイト配列から、length パラメータで指定したデータバイト数を読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 倍精度浮動小数点数を読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 単精度浮動小数点数を読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から符号付き 32 ビット整数を読み取ります。
IDataInput
  
readMultiByte(length:uint, charSet:String):String
指定した文字セットを使用して、ファイルストリーム、バイトストリームまたはバイト配列から指定した長さのマルチバイトストリングを読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から、AMF 直列化形式でエンコードされたオブジェクトを読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から符号付き 16 ビット整数を読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から符号なしバイトを読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から符号なし 32 ビット整数を読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から符号なし 16 ビット整数を読み取ります。
IDataInput
  
ファイルストリーム、バイトストリームまたはバイト配列から UTF-8 ストリングを読み取ります。
IDataInput
  
バイトストリームまたはバイト配列から UTF-8 の バイトのシーケンスを読み取り、ストリングを返します。
IDataInput
プロパティの詳細
bytesAvailableプロパティ
bytesAvailable:uint  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

入力バッファで読み取ることができるデータのバイト数を返します。読み取りメソッドを使用する前に、ユーザーコードで bytesAvailable を呼び出して、読み取るデータが十分にあることを確認します。



実装
    public function get bytesAvailable():uint
endianプロパティ 
endian: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プロパティ 
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

関連項目

メソッドの詳細
readBoolean()メソッド
public function readBoolean():Boolean

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列からブール値を読み取ります。 1 バイトが読み取られ、バイトがゼロ以外の場合は true、それ以外の場合は false が返されます。

戻り値
Boolean — バイトがゼロ以外の場合は true、それ以外の場合は false のブール値が返されます。

例外
EOFError — 読み取り可能なデータが不足しています。
readByte()メソッド 
public function readByte():int

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から符号付きバイトを読み取ります。

戻り値
int — 戻り値は -128 ~ 127 の範囲です。

例外
EOFError — 読み取り可能なデータが不足しています。
readBytes()メソッド 
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 に設定すると、すべてのデータが読み取られます。


例外
EOFError — 読み取り可能なデータが不足しています。
readDouble()メソッド 
public function readDouble():Number

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 倍精度浮動小数点数を読み取ります。

戻り値
Number — IEEE 754 倍精度浮動小数点数です。

例外
EOFError — 読み取り可能なデータが不足しています。
readFloat()メソッド 
public function readFloat():Number

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から IEEE 754 単精度浮動小数点数を読み取ります。

戻り値
Number — IEEE 754 単精度浮動小数点数です。

例外
EOFError — 読み取り可能なデータが不足しています。
readInt()メソッド 
public function readInt():int

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から符号付き 32 ビット整数を読み取ります。

戻り値
int — 戻り値は -2147483648 ~ 2147483647 の範囲です。

例外
EOFError — 読み取り可能なデータが不足しています。
readMultiByte()メソッド 
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") のように 011 の代わりに使用した場合、その文字セットパラメータは開発マシンでは認識される場合がありますが、別のマシンでは認識されない可能性があります。もう一方のマシンでは、Flash Player または AIR ランタイムがシステムのデフォルトコードページを使用することになります。

戻り値
String — UTF-8 エンコードされたストリングです。

例外
EOFError — 読み取り可能なデータが不足しています。
readObject()メソッド 
public function readObject():*

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から、AMF 直列化形式でエンコードされたオブジェクトを読み取ります。

戻り値
* — 非直列化されたオブジェクトです。

例外
EOFError — 読み取り可能なデータが不足しています。

関連項目

readShort()メソッド 
public function readShort():int

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から符号付き 16 ビット整数を読み取ります。

戻り値
int — 戻り値は -32768 ~ 32767 の範囲です。

例外
EOFError — 読み取り可能なデータが不足しています。
readUnsignedByte()メソッド 
public function readUnsignedByte():uint

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から符号なしバイトを読み取ります。

戻り値
uint — 戻り値は 0 ~ 255 の範囲です。

例外
EOFError — 読み取り可能なデータが不足しています。
readUnsignedInt()メソッド 
public function readUnsignedInt():uint

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から符号なし 32 ビット整数を読み取ります。

戻り値
uint — 戻り値は 0 ~ 4294967295 の範囲です。

例外
EOFError — 読み取り可能なデータが不足しています。
readUnsignedShort()メソッド 
public function readUnsignedShort():uint

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から符号なし 16 ビット整数を読み取ります。

戻り値
uint — 戻り値は 0 ~ 65535 の範囲です。

例外
EOFError — 読み取り可能なデータが不足しています。
readUTF()メソッド 
public function readUTF():String

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイルストリーム、バイトストリームまたはバイト配列から UTF-8 ストリングを読み取ります。 このストリングには、バイト単位の長さを示す符号なし short が前に付いているものと見なされます。

このメソッドは、Java IDataInput インターフェイスの readUTF() メソッドによく似ています。

戻り値
String — 文字のバイト表現で作成された UTF-8 ストリングです。

例外
EOFError — 読み取り可能なデータが不足しています。
readUTFBytes()メソッド 
public function readUTFBytes(length:uint):String

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

バイトストリームまたはバイト配列から UTF-8 の バイトのシーケンスを読み取り、ストリングを返します。

パラメータ

length:uint — 読み取るバイト数です。

戻り値
String — 指定した長さの文字のバイト表現で作成された UTF-8 ストリングです。

例外
EOFError — 読み取り可能なデータが不足しています。
例の使用法
DataInputExample.as

次の例では、クラス DataInputExample を使用して、ブールおよび pi の倍精度の浮動小数表現をバイト配列に書き込みます。ここでは以下の手順を実行します。
  1. 新しい ByteArray オブジェクトインスタンス byteArr を宣言します。
  2. バイトと等価のブール値 false および pi の平方根と等価の倍精度の浮動小数を書き込みます。
  3. ブール値および倍精度浮動小数点数を読み出します。

コードセグメントが最後に追加され、ファイルの終端エラーをチェックして、バイトストリームが最後まで読み取られないことを確認します。

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.
            }
        }
    }
}




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/utils/IDataInput.html