パッケージflash.utils
public class ByteArray
継承ByteArray Inheritance Object
実装IDataInput, IDataOutput

ByteArray クラスには、バイナリデータの読み取り、書き込み、および操作を最適化するメソッドおよびプロパティがあります。

メモ: ByteArray クラスは、バイトレベルでデータにアクセスする必要がある上級の ActionScript 開発者を対象としています。

メモリ内データはバイトの詰め込み配列 (最もコンパクトなデータ型の表現) ですが、標準 ActionScript [] (配列アクセス) 演算子を使用すると ByteArray クラスのインスタンスを操作できます。また、URLStream および Socket クラスと同じメソッドを使用すると、メモリ内ファイルとして読み取りおよび書き取りをすることができます。

さらに、AMF (Action Message Format) オブジェクトの直列化に加えて、zlib 圧縮および解凍もサポートされています。

ByteArray クラスを使用すると、以下の操作が可能です。

例の表示

関連項目

[] (array access)
Socket class
URLStream class


パブリックプロパティ
 プロパティ定義
  bytesAvailable : uint
[read-only] バイト配列の現在の位置から最後まで読み取り可能なデータのバイト数です。
ByteArray
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  defaultObjectEncoding : uint
[static] 新しい ByteArray インスタンスに使用する ByteArray クラス用のデフォルトオブジェクトのエンコードを表します。
ByteArray
  endian : String
データのバイト順序、"bigEndian" または "littleEndian" のいずれかを変更または読み取ります。
ByteArray
  length : uint
ByteArray オブジェクトのバイト単位の長さです。
ByteArray
  objectEncoding : uint
ByteArray インスタンスへの書き込み、または ByteArray インスタンスからの読み取り時の、ActionScript 3.0、ActionScript 2.0、または ActionScript 1.0 の形式を使用する必要があるかどうかの特定に使用されます。
ByteArray
  position : uint
ByteArray オブジェクトにファイルポインタの現在の位置をバイト単位で移動するかまたは返します。
ByteArray
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義
  ByteArray()
バイトの詰め込み配列を表す ByteArray インスタンスを作成します。その結果、このクラスでメソッドおよびプロパティを使用すると、データストレージおよびデータストリームを最適化できます。
ByteArray
  compress():void
zlib 圧縮を使用して、バイト配列を圧縮します。
ByteArray
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
  readBoolean():Boolean
バイトストリームからブール値を読み取ります。
ByteArray
  readByte():int
バイトストリームから符号付きバイトを読み取ります。
ByteArray
  readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
バイトストリームから、length パラメータで指定したデータバイト数を読み取ります。
ByteArray
  readDouble():Number
バイトストリームから IEEE 754 倍精度 (64 ビット) 浮動小数点数を読み取ります。
ByteArray
  readFloat():Number
バイトストリームから IEEE 754 単精度 (32 ビット) 浮動小数点数を読み取ります。
ByteArray
  readInt():int
バイトストリームから符号付き 32 ビット整数を読み取ります。
ByteArray
  readMultiByte(length:uint, charSet:String):String
指定した文字セットを使用して、バイトストリームから指定した長さのマルチバイトストリングを読み取ります。
ByteArray
  readObject():*
バイト配列から AMF 直列化形式でエンコードされたオブジェクトを読み取ります。
ByteArray
  readShort():int
バイトストリームから符号付き 16 ビット整数を読み取ります。
ByteArray
  readUnsignedByte():uint
バイトストリームから符号なしバイトを読み取ります。
ByteArray
  readUnsignedInt():uint
バイトストリームから符号なし 32 ビット整数を読み取ります。
ByteArray
  readUnsignedShort():uint
バイトストリームから符号なし 16 ビット整数を読み取ります。
ByteArray
  readUTF():String
バイトストリームから UTF-8 ストリングを読み取ります。
ByteArray
  readUTFBytes(length:uint):String
バイトストリームまたはバイト配列から、length パラメータで指定した UTF-8 バイトのシーケンスを読み取り、ストリングを返します。
ByteArray
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  toString():String
バイト配列をストリングに変換します。
ByteArray
  uncompress():void
バイト配列を解凍します。
ByteArray
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
  writeBoolean(value:Boolean):void
ブール値を書き込みます。
ByteArray
  writeByte(value:int):void
バイトストリームにバイトを書き込みます。
ByteArray
  writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
指定したバイト配列の offset (0 から始まるインデックス値) バイトから開始される length バイトのシーケンス bytes をバイトストリームに書き込みます。
ByteArray
  writeDouble(value:Number):void
バイトストリームに IEEE 754 倍精度 (64 ビット) 浮動小数点数を書き込みます。
ByteArray
  writeFloat(value:Number):void
バイトストリームに IEEE 754 単精度 (32 ビット) 浮動小数点数を書き込みます。
ByteArray
  writeInt(value:int):void
バイトストリームに 32 ビット符号付き整数を書き込みます。
ByteArray
  writeMultiByte(value:String, charSet:String):void
指定した文字セットを使用して、バイトストリームにマルチバイトストリングを書き込みます。
ByteArray
  writeObject(object:*):void
バイト配列に AMF 直列化形式でオブジェクトを書き込みます。
ByteArray
  writeShort(value:int):void
バイトストリームに 16 ビット整数を書き込みます。
ByteArray
  writeUnsignedInt(value:uint):void
バイトストリームに 32 ビット符号なし整数を書き込みます。
ByteArray
  writeUTF(value:String):void
バイトストリームに UTF-8 ストリングを書き込みます。
ByteArray
  writeUTFBytes(value:String):void
バイトストリームに UTF-8 ストリングを書き込みます。
ByteArray
プロパティの詳細
bytesAvailableプロパティ
bytesAvailable:uint  [read-only]

バイト配列の現在の位置から最後まで読み取り可能なデータのバイト数です。

ByteArray オブジェクトにアクセスするたびに、読み取りメソッドとともに bytesAvailable プロパティを使用すると、有効なデータが読み取られていることを確認できます。

実装
    public function get bytesAvailable():uint
defaultObjectEncodingプロパティ 
defaultObjectEncoding:uint  [read-write]

新しい ByteArray インスタンスに使用する ByteArray クラス用のデフォルトオブジェクトのエンコードを表します。新しい ByteArray インスタンスを作成すると、そのインスタンスのエンコードが defaultObjectEncoding の値で開始します。defaultObjectEncoding プロパティは ObjectEncoding.AMF3 に初期化されます。

バイナリデータからオブジェクトの書き込みまたは読み取りをすると、objectEncoding 値を使用して、ActionScript 3.0、ActionScript 2.0、または ActionScript 1.0 の形式を使用する必要があるかどうかが特定されます。この値は、ObjectEncoding クラスの定数です。

実装
    public static function get defaultObjectEncoding():uint
    public function set defaultObjectEncoding(value:uint):void

関連項目

endianプロパティ 
endian:String  [read-write]

データのバイト順序、"bigEndian" または "littleEndian" のいずれかを変更または読み取ります。この値は、Endian クラスの定数です。

実装
    public function get endian():String
    public function set endian(value:String):void

関連項目

lengthプロパティ 
length:uint  [read-write]

ByteArray オブジェクトのバイト単位の長さです。

この長さを現在の長さよりも大きい値に設定すると、Flash Player では右辺にゼロが挿入されます。

この長さに現在の長さよりも小さい値を設定すると、配列は切り詰められます。

実装
    public function get length():uint
    public function set length(value:uint):void
objectEncodingプロパティ 
objectEncoding:uint  [read-write]

ByteArray インスタンスへの書き込み、または ByteArray インスタンスからの読み取り時の、ActionScript 3.0、ActionScript 2.0、または ActionScript 1.0 の形式を使用する必要があるかどうかの特定に使用されます。この値は、ObjectEncoding クラスの定数です。

実装
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

関連項目

positionプロパティ 
position:uint  [read-write]

ByteArray オブジェクトにファイルポインタの現在の位置をバイト単位で移動するかまたは返します。これは、次に読み取りメソッドを呼び出して読み取りを開始するポイント、または書き出しメソッドで書き出しを開始するポイントです。

実装
    public function get position():uint
    public function set position(value:uint):void
コンストラクタの詳細
ByteArray()コンストラクタ
public 関数 ByteArray()

バイトの詰め込み配列を表す ByteArray インスタンスを作成します。その結果、このクラスでメソッドおよびプロパティを使用すると、データストレージおよびデータストリームを最適化できます。

メソッドの詳細
compress()メソッド
public function compress():void

zlib 圧縮を使用して、バイト配列を圧縮します。バイト配列全体が圧縮されます。

関連項目

readBoolean()メソッド 
public function readBoolean():Boolean

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

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

スロー
EOFError — 十分なデータを読み取れません。
readByte()メソッド 
public function readByte():int

バイトストリームから符号付きバイトを読み取ります。

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

戻り値
int — -128 ~ 127 の整数です。

スロー
EOFError — 十分なデータを読み取れません。
readBytes()メソッド 
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

バイトストリームから、length パラメータで指定したデータバイト数を読み取ります。このバイトは、bytes パラメータで指定した ByteArray オブジェクトの offset で指定された開始位置に読み込まれます。

パラメータ
bytes:ByteArray — データの読み込み先の ByteArray オブジェクトです。
 
offset:uint (default = 0) — データの読み取りが開始する bytes へのオフセットです。
 
length:uint (default = 0) — 読み取るバイト数です。デフォルト値の 0 に設定すると、すべてのデータが読み取られます。

スロー
EOFError — 十分なデータを読み取れません。
readDouble()メソッド 
public function readDouble():Number

バイトストリームから IEEE 754 倍精度 (64 ビット) 浮動小数点数を読み取ります。

戻り値
Number — 倍精度 (64 ビット) 浮動小数点数です。

スロー
EOFError — 十分なデータを読み取れません。
readFloat()メソッド 
public function readFloat():Number

バイトストリームから IEEE 754 単精度 (32 ビット) 浮動小数点数を読み取ります。

戻り値
Number — 単精度 (32 ビット) 浮動小数点数です。

スロー
EOFError — 十分なデータを読み取れません。
readInt()メソッド 
public function readInt():int

バイトストリームから符号付き 32 ビット整数を読み取ります。

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

戻り値
int — -2147483648 ~ 2147483647 の 32 ビット符号付き整数です。

スロー
EOFError — 十分なデータを読み取れません。
readMultiByte()メソッド 
public function readMultiByte(length:uint, charSet:String):String

指定した文字セットを使用して、バイトストリームから指定した長さのマルチバイトストリングを読み取ります。

パラメータ
length:uint — バイトストリームから読み取るバイト数です。
 
charSet:String — バイトの解釈に使用する文字セットを表すストリングです。文字セットのストリングには、"shift-jis""cn-gb"、および "iso-8859-1" などがあります。完全な一覧については、「サポートする文字セット」を参照してください。

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

スロー
EOFError — 十分なデータを読み取れません。
readObject()メソッド 
public function readObject():*

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

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

スロー
EOFError — 十分なデータを読み取れません。
readShort()メソッド 
public function readShort():int

バイトストリームから符号付き 16 ビット整数を読み取ります。

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

戻り値
int — -32768 ~ 32767 の 16 ビット符号付き整数です。

スロー
EOFError — 十分なデータを読み取れません。
readUnsignedByte()メソッド 
public function readUnsignedByte():uint

バイトストリームから符号なしバイトを読み取ります。

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

戻り値
uint — 0 ~ 255 の 32 ビット符号なし整数です。

スロー
EOFError — 十分なデータを読み取れません。
readUnsignedInt()メソッド 
public function readUnsignedInt():uint

バイトストリームから符号なし 32 ビット整数を読み取ります。

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

戻り値
uint — 0 ~ 4294967295 の 32 ビット符号なし整数です。

スロー
EOFError — 十分なデータを読み取れません。
readUnsignedShort()メソッド 
public function readUnsignedShort():uint

バイトストリームから符号なし 16 ビット整数を読み取ります。

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

戻り値
uint — 0 ~ 65535 の 16 ビット符号なし整数です。

スロー
EOFError — 十分なデータを読み取れません。
readUTF()メソッド 
public function readUTF():String

バイトストリームから UTF-8 ストリングを読み取ります。このストリングには、バイト単位で長さを示す符号なし short が接頭辞として付くことが前提となっています。

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

スロー
EOFError — 十分なデータを読み取れません。

関連項目

readUTFBytes()メソッド 
public function readUTFBytes(length:uint):String

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

パラメータ
length:uint — UTF-8 バイトの長さを示す符号なし short です。

戻り値
String — 指定した長さの UTF-8 バイトで構成するストリングです。

スロー
EOFError — 十分なデータを読み取れません。
toString()メソッド 
public function toString():String

バイト配列をストリングに変換します。配列のデータが Unicode バイト順マークで開始する場合、Flash ではストリングの変換時に、そのマークは使用されません。System.useCodePagetrue に設定すると、Player では、変換時の配列は現在のシステムコードページにあると見なされます。

戻り値
String — バイト配列のストリング表現です。
uncompress()メソッド 
public function uncompress():void

バイト配列を解凍します。バイト配列を事前に compress() メソッドで圧縮しておく必要があります。

関連項目

writeBoolean()メソッド 
public function writeBoolean(value:Boolean):void

ブール値を書き込みます。value パラメータに従って、1 バイトが書き込まれます。true の場合は 1、false の場合は 0 のいずれかが書き込まれます。

パラメータ
value:Boolean — 書き込むバイトを決定するブール値です。このパラメータが true の場合は 1、false の場合は 0 が Flash Player によって書き込まれます。
writeByte()メソッド 
public function writeByte(value:int):void

バイトストリームにバイトを書き込みます。

パラメータの下位 8 ビットが使用されます。上位 24 ビットは無視されます。

パラメータ
value:int — 32 ビット整数です。バイトストリームに下位 8 ビットが書き込まれます。
writeBytes()メソッド 
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

指定したバイト配列の offset (0 から始まるインデックス値) バイトから開始される length バイトのシーケンス bytes をバイトストリームに書き込みます。

length パラメータを省略すると、デフォルトの長さの 0 が使用され、Flash Player によって offset から開始されるバッファ全体が書き込まれます。offset パラメータも省略した場合は、バッファ全体が書き込まれます。

offset または length が範囲外の場合、これらは bytes 配列の最初と最後に固定されます。

パラメータ
bytes:ByteArray — ByteArray オブジェクトです。
 
offset:uint (default = 0) — 書き込みを開始する配列への位置を示す 0 から始まるインデックスです。
 
length:uint (default = 0) — 書き込むバッファまでの距離を示す符号付きの整数です。
writeDouble()メソッド 
public function writeDouble(value:Number):void

バイトストリームに IEEE 754 倍精度 (64 ビット) 浮動小数点数を書き込みます。

パラメータ
value:Number — 倍精度 (64 ビット) 浮動小数点数です。
writeFloat()メソッド 
public function writeFloat(value:Number):void

バイトストリームに IEEE 754 単精度 (32 ビット) 浮動小数点数を書き込みます。

パラメータ
value:Number — 単精度 (32 ビット) 浮動小数点数です。
writeInt()メソッド 
public function writeInt(value:int):void

バイトストリームに 32 ビット符号付き整数を書き込みます。

パラメータ
value:int — バイトストリームに書き込む整数です。
writeMultiByte()メソッド 
public function writeMultiByte(value:String, charSet:String):void

指定した文字セットを使用して、バイトストリームにマルチバイトストリングを書き込みます。

パラメータ
value:String — 書き込まれるストリング値です。
 
charSet:String — 使用する文字セットを表すストリングです。文字セットのストリングには、"shift-jis""cn-gb"、および "iso-8859-1" などがあります。完全な一覧については、「サポートする文字セット」を参照してください。
writeObject()メソッド 
public function writeObject(object:*):void

バイト配列に AMF 直列化形式でオブジェクトを書き込みます。

パラメータ
object:* — 並列化するオブジェクトです。
writeShort()メソッド 
public function writeShort(value:int):void

バイトストリームに 16 ビット整数を書き込みます。パラメータの下位 16 ビットが使用されます。上位 16 ビットは無視されます。

パラメータ
value:int — バイトストリームに下位 16 ビットが書き込まれる 32 ビット整数です。
writeUnsignedInt()メソッド 
public function writeUnsignedInt(value:uint):void

バイトストリームに 32 ビット符号なし整数を書き込みます。

パラメータ
value:uint — バイトストリームに書き込む符号なし整数です。
writeUTF()メソッド 
public function writeUTF(value:String):void

バイトストリームに UTF-8 ストリングを書き込みます。最初に UTF-8 ストリングの長さがバイト単位で 16 ビット整数として書き込まれ、その後にストリングの文字を表すバイトが続きます。

パラメータ
value:String — 書き込まれるストリング値です。

スロー
RangeError — 65535 よりも大きい長さの場合
writeUTFBytes()メソッド 
public function writeUTFBytes(value:String):void

バイトストリームに UTF-8 ストリングを書き込みます。writeUTF() メソッドと似ていますが、writeUTFBytes() では、ストリングに 16 ビット長の接頭辞が付きません。

パラメータ
value:String — 書き込まれるストリング値です。

次の例では、クラス ByteArrayExample を使用して、ブール および pi の倍精度の浮動小数表現をバイト配列に書き込みます。これを行うには、 次の手順を実行します。
  1. 新しい ByteArray オブジェクトインスタンス byteArr を宣言します。
  2. バイトと等価のブール値 false を書き込み、長さをチェックして その値を戻します。
  3. pi の平方根と等価の倍精度の浮動小数を書き込みます。
  4. バイト配列に書き込まれた各 9 バイトを戻します。

メモ : trace() がバイトに対して呼び出されると、 バイト配列に保存された 10 進表現のバイトが出力されます。

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

package {
    import flash.display.Sprite;
    import flash.utils.ByteArray;
    import flash.errors.EOFError;

    public class ByteArrayExample extends Sprite {        
        public function ByteArrayExample() {
            var byteArr:ByteArray = new ByteArray();

            byteArr.writeBoolean(false);
            trace(byteArr.length);            // 1
            trace(byteArr[0]);            // 0

            byteArr.writeDouble(Math.PI);
            trace(byteArr.length);            // 9
            trace(byteArr[0]);            // 0
            trace(byteArr[1]);            // 64
            trace(byteArr[2]);            // 9
            trace(byteArr[3]);            // 33
            trace(byteArr[4]);            // 251
            trace(byteArr[5]);            // 84
            trace(byteArr[6]);            // 68
            trace(byteArr[7]);            // 45
            trace(byteArr[8]);            // 24
            
            byteArr.position = 0;

            try {
                trace(byteArr.readBoolean() == false); // true
            } 
            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/2_jp/langref/flash/utils/ByteArray.html