| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ByteArray クラスには、バイナリデータの読み取り、書き込み、および操作を最適化するメソッドおよびプロパティがあります。
注意:ByteArray クラスは、バイトレベルでデータにアクセスする必要がある上級の開発者を対象としています。
メモリ内データはバイトの詰め込み配列(最もコンパクトなデータ型の表現)ですが、ByteArray クラスのインスタンスは標準 [](配列アクセス)演算子を使用して操作できます。また、URLStream および Socket クラスと同じメソッドを使用し、メモリ内ファイルとして読み取りおよび書き込みを行うことができます。
さらに、AMF(Action Message Format)オブジェクトの直列化に加えて、zlib 圧縮および解凍もサポートされています。
ByteArray クラスを使用すると、以下の操作が可能です。
- カスタム プロトコルを作成してサーバーに接続
- 独自の URLEncoder および URLDecoder の作成
- 独自の AMF および Remoting パケットの作成
- データ型を使用したデータのサイズの最適化
-
Adobe® AIR™ 内のファイルから読み込まれたバイナリデータの操作
例を表示
bytesAvailable:uint [読み取り専用]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイト配列の現在の位置から最後までの読み取り可能なデータのバイト数です。
ByteArray オブジェクトにアクセスするたびに bytesAvailable プロパティと読み取りメソッドを組み合わせて使用すれば、有効なデータを確実に読み取ることができます。
実装 public function get bytesAvailable():uintdefaultObjectEncoding:uint [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
新しい 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:String [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
データのバイト順序(Endian.BIG_ENDIAN または Endian.LITTLE_ENDIAN)を変更するか、読み取ります。
実装 public function get endian():String public function set endian(value:String):void関連項目
length:uint [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ByteArray オブジェクトのバイト単位の長さです。
この長さに現在の長さよりも大きい値を設定すると、バイト配列の右側は 0 で埋められます。
この長さに現在の長さよりも小さい値を設定すると、バイト配列は切り詰められます。
実装 public function get length():uint public function set length(value:uint):voidobjectEncoding:uint [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
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:uint [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ByteArray オブジェクト内でのファイルポインタの現在の位置をバイト単位で移動するか、または現在の位置をバイト単位で返します。これは、次に読み取りメソッドまたは書き込みメソッドを呼び出したときに読み取りまたは書き込みが開始されるポイントです。
実装 public function get position():uint public function set position(value:uint):voidpublic function ByteArray()| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトの詰め込み配列を表す ByteArray インスタンスを作成します。これにより、このクラスのメソッドおよびプロパティを使用して、データストレージおよびデータストリームを最適化できます。
public function clear():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
バイト配列の内容を消去し、長さと位置のプロパティを 0 にリセットします。このメソッドを明示的に呼び出すと、ByteArray インスタンスによって使用されるメモリを解放します。
public function compress(algorithm:String):void
バイト配列を圧縮します。バイト配列全体が圧縮されます。Adobe AIR で実行しているコンテンツの場合、CompressionAlgorithm クラスに定義されている値を algorithm パラメータとして渡すことにより、圧縮アルゴリズムを指定できます。Flash Player は、デフォルトの zlib アルゴリズムのみをサポートします。
呼び出し後、ByteArray の length プロパティが新しい長さに設定されます。position プロパティがバイト配列の末尾に設定されます。
zlib 圧縮データ形式の詳細については、http://www.ietf.org/rfc/rfc1950.txt の説明を参照してください。
deflate 圧縮アルゴリズムについては、http://www.ietf.org/rfc/rfc1951.txt の説明を参照してください。
deflate 圧縮アルゴリズムは、zlib、gzip、一部の zip 実装などの様々な圧縮形式で使用されています。これらの圧縮形式のいずれかを使用してデータを圧縮した場合、その圧縮形式データ(.zip ファイルなど)には、元のデータの圧縮されたバージョンに加えてメタデータ情報も保存されます。各種ファイル形式に含まれるメタデータの種類の例としては、ファイル名、ファイル修正日時、元のファイルサイズ、オプションのコメント、チェックサムデータなどがあります。
例えば、zlib アルゴリズムを使用して ByteArray を圧縮すると、生成された ByteArray の構造はある特定のフォーマットになります。特定のバイト位置に圧縮データに関するメタデータが格納され、それ以外のバイト位置に元の ByteArray データの実際に圧縮されたバージョンが格納されます。zlib 圧縮データ形式の仕様で規定されているように、このバイト部分(つまり、元のデータの圧縮されたバージョンを含む部分)は deflate アルゴリズムを使用して圧縮されます。したがって、これらのバイトは、元の ByteArray で compress( CompressionAlgorithm.DEFLATE) を呼び出した結果と同じです。ただし、 compress( CompressionAlgorithm.ZLIB) の結果には追加のメタデータが含まれています。それに対して、compress(CompressionAlgorithm.DEFLATE) の結果には元の ByteArray データの圧縮されたバージョン以外のものは含まれていません。
したがって、deflate 形式を使用して ByteArray インスタンスのデータを gzip や zip などの特定の形式に圧縮する場合は、単に compress(CompressionAlgorithm.DEFLATE) を呼び出すだけでは不十分です。圧縮形式の仕様に従い、適切なメタデータと deflate 形式で圧縮されたデータで構成された ByteArray を作成する必要があります。同様に、gzip や zip などの形式で圧縮されたデータを解凍する場合、単にそのデータに対して uncompress(CompressionAlgorithm.DEFLATE) を呼び出すだけでは不十分です。まず、圧縮データからメタデータを分離してから、deflate 形式を使用して圧縮データを解凍する必要があります。
パラメータ
| algorithm:String (default = NaN) —
圧縮時に使用する圧縮アルゴリズムです。有効な値は、CompressionAlgorithm クラスに定数で定義されています。デフォルトでは zlib 形式が使用されます。このパラメータは、Adobe AIR で実行しているコンテンツに対してのみ有効です。 Flash Player はデフォルトの zlib アルゴリズムのみをサポートしているため、このパラメータの値を渡そうとすると例外をスローします。 compress(CompressionAlgorithm.DEFLATE) の呼び出しは、deflate() メソッドを呼び出した場合と同じ効果があります。
|
関連項目
public function deflate():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
deflate 圧縮アルゴリズムを使用してバイト配列を圧縮します。バイト配列全体が圧縮されます。
呼び出し後、ByteArray の length プロパティが新しい長さに設定されます。position プロパティがバイト配列の末尾に設定されます。
deflate 圧縮アルゴリズムについては、http://www.ietf.org/rfc/rfc1951.txt の説明を参照してください。
deflate 形式を使用して ByteArray インスタンスのデータを gzip や zip などの特定の形式に圧縮する場合は、単に deflate() を呼び出すだけでは目的を達することはできません。圧縮形式の仕様に従い、適切なメタデータと deflate 形式で圧縮されたデータで構成された ByteArray を作成する必要があります。 同様に、gzip や zip などの形式で圧縮されたデータを解凍する場合、単にそのデータに対して inflate() を呼び出すだけでは不十分です。まず、圧縮データからメタデータを分離してから、deflate 形式を使用して圧縮データを解凍する必要があります。
関連項目
public function inflate():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 10 |
deflate 圧縮アルゴリズムを使用してバイト配列を解凍します。同じアルゴリズムを使用してバイト配列が圧縮されている必要があります。
呼び出し後、ByteArray の length プロパティが新しい長さに設定されます。position プロパティが 0 に設定されます。
deflate 圧縮アルゴリズムについては、http://www.ietf.org/rfc/rfc1951.txt の説明を参照してください。
deflate 圧縮アルゴリズムを使用する形式で圧縮されたデータ(gzip 形式や zip 形式のデータ)を解凍する場合、圧縮形式データを含む ByteArray に対して単に inflate() を呼び出してもデータは解凍されません。まず、圧縮データ形式の構成要素であるメタデータを実際の圧縮データから分離する必要があります。詳細については、compress() メソッドの説明を参照してください。
例外 | IOError — データが有効な圧縮データではありません。指定された圧縮アルゴリズムと同じアルゴリズムを使用して圧縮されていません。 |
関連項目
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 |
バイトストリームから符号付きバイトを読み取ります。
戻り値は -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 によって指定された位置から始まるターゲット ByteArray に書き込まれます。
パラメータ
| 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 倍精度(64 ビット)浮動小数点数を読み取ります。
戻り値例外 public function readFloat():Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームから IEEE 754 単精度(32 ビット)浮動小数点数を読み取ります。
戻り値例外 public function readInt():int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームから符号付き 32 ビット整数を読み取ります。
戻り値は -2147483648 ~ 2147483647 の範囲です。
戻り値 | int — -2147483648 ~ 2147483647 の 32 ビット符号付き整数です。 |
例外 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 パラメータの値が現在のシステムによって認識されない場合、アプリケーションはシステムのデフォルトコードページを文字セットとして使用します。例えば、charSet パラメータの指定で、myTest.readMultiByte(22, "iso-8859-01") のように、01 を 1 の代わりに使用した場合、その文字セットパラメータは開発マシンでは認識されるかもしれませんが、別のマシンでは認識されない可能性があります。もう一方のマシンでは、アプリケーションがシステムのデフォルトコードページを使用することになります。
|
戻り値 | 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 ビット整数を読み取ります。
戻り値は -32768 ~ 32767 の範囲です。
戻り値 | int — -32768 ~ 32767 の 16 ビット符号付き整数です。 |
例外 public function readUnsignedByte():uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームから符号なしバイトを読み取ります。
戻り値は 0 ~ 255 の範囲です。
戻り値 | uint — 0 ~ 255 の 32 ビット符号なし整数です。 |
例外 public function readUnsignedInt():uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームから符号なし 32 ビット整数を読み取ります。
戻り値は 0 ~ 4294967295 の範囲です。
戻り値 | uint — 0 ~ 4294967295 の 32 ビット符号なし整数です。 |
例外 public function readUnsignedShort():uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームから符号なし 16 ビット整数を読み取ります。
戻り値は 0 ~ 65535 の範囲です。
戻り値 | uint — 0 ~ 65535 の 16 ビット符号なし整数です。 |
例外 public function readUTF():String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームから UTF-8 ストリングを読み取ります。このストリングには、バイト単位の長さを示す符号なし short が前に付いているものと見なされます。
戻り値 | String — UTF-8 エンコードされたストリングです。 |
例外関連項目
public function readUTFBytes(length:uint):String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームまたはバイト配列から、length パラメータで指定した UTF-8 バイトのシーケンスを読み取り、ストリングを返します。
パラメータ
| length:uint — UTF-8 バイトの長さを示す符号なし short です。 |
戻り値 | String — 指定した長さの UTF-8 バイトで構成するストリングです。 |
例外 public function toString():String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイト配列をストリングに変換します。配列のデータが Unicode バイト順マークで開始する場合、アプリケーションではストリングの変換時に、そのマークが使用されます。System.useCodePage を true に設定すると、アプリケーションでは、変換時の配列のデータは現在のシステムコードページにあると見なされます。
戻り値 public function uncompress(algorithm:String):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイト配列を解凍します。Adobe AIR で実行しているコンテンツの場合、CompressionAlgorithm クラスに定義されている値を algorithm パラメータとして渡すことにより、圧縮アルゴリズムを指定できます。同じアルゴリズムを使用してバイト配列が圧縮されている必要があります。Flash Player は、デフォルトの zlib アルゴリズムのみをサポートします。
呼び出し後、ByteArray の length プロパティが新しい長さに設定されます。position プロパティが 0 に設定されます。
zlib 圧縮データ形式の詳細については、http://www.ietf.org/rfc/rfc1950.txt の説明を参照してください。
deflate 圧縮アルゴリズムについては、http://www.ietf.org/rfc/rfc1951.txt の説明を参照してください。
deflate 圧縮アルゴリズムを使用する形式で圧縮されたデータ(gzip 形式や zip 形式のデータ)を解凍する場合、圧縮形式データを含む ByteArray に対して uncompress(CompressionAlgorithm.DEFLATE) を呼び出してもデータは解凍されません。まず、圧縮データ形式の構成要素であるメタデータを実際の圧縮データから分離する必要があります。詳細については、compress() メソッドの説明を参照してください。
パラメータ
| algorithm:String (default = NaN) —
解凍時に使用する圧縮アルゴリズムです。データの圧縮に使用されたものと同じ圧縮アルゴリズムを指定する必要があります。有効な値は、CompressionAlgorithm クラスに定数で定義されています。デフォルトでは zlib 形式が使用されます。このパラメータは、Adobe AIR で実行しているコンテンツに対してのみ有効です。Flash Player はデフォルトの zlib アルゴリズムのみをサポートしているため、このパラメータの値を渡そうとすると例外をスローします。
|
例外 | IOError — データが有効な圧縮データではありません。指定された圧縮アルゴリズムと同じアルゴリズムを使用して圧縮されていません。 |
関連項目
public function writeBoolean(value:Boolean):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ブール値を書き込みます。 value パラメータに従って、1 バイトが書き込まれます。true の場合は 1、false の場合は 0 のいずれかが書き込まれます。
パラメータ
| value:Boolean —
書き込むバイトを決定するブール値です。このパラメータが true の場合は 1、false の場合は 0 がメソッドによって書き込まれます。
|
public function writeByte(value:int):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームにバイトを書き込みます。
パラメータの下位 8 ビットが使用されます。上位 24 ビットは無視されます。
パラメータ
| value:int — 32 ビット整数です。バイトストリームに下位 8 ビットが書き込まれます。 |
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定したバイト配列の length バイトのシーケンス bytes の、offset(0 から始まるインデックス値)バイト以降をバイトストリームに書き込みます。
length パラメータを省略すると、デフォルトの長さの 0 が使用され、メソッドによって offset から開始されるバッファ全体が書き込まれます。 offset パラメータも省略した場合は、バッファ全体が書き込まれます。
offset または length が範囲外の場合、これらは bytes 配列の最初と最後に固定されます。
パラメータ
| bytes:ByteArray — ByteArray オブジェクトです。 |
| |
| offset:uint (default = 0) — 書き込みを開始する配列の位置を示す、0 から始まるインデックスです。 |
| |
| length:uint (default = 0) — 書き込むバッファの長さを示す符号付きの整数です。 |
public function writeDouble(value:Number):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームに IEEE 754 倍精度(64 ビット)浮動小数点数を書き込みます。
パラメータ
| value:Number — 倍精度(64 ビット)浮動小数点数です。 |
public function writeFloat(value:Number):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームに IEEE 754 単精度(32 ビット)浮動小数点数を書き込みます。
パラメータ
| value:Number — 単精度(32 ビット)浮動小数点数です。 |
public function writeInt(value:int):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームに 32 ビット符号付き整数を書き込みます。
パラメータ
| value:int — バイトストリームに書き込む整数です。 |
public function writeMultiByte(value:String, charSet:String):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定した文字セットを使用して、バイトストリームにマルチバイトストリングを書き込みます。
パラメータ
| value:String — 書き込まれるストリング値です。 |
| |
| charSet:String —
使用する文字セットを表すストリングです。文字セットのストリングには、「shift-jis」、「cn-gb」、「iso-8859-1」などがあります。 完全な一覧については、サポートする文字セットを参照してください。
|
public function writeObject(object:*):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイト配列に AMF 直列化形式でオブジェクトを書き込みます。
パラメータ
| object:* — 直列化するオブジェクトです。 |
関連項目
public function writeShort(value:int):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームに 16 ビット整数を書き込みます。パラメータの下位 16 ビットが使用されます。上位 16 ビットは無視されます。
パラメータ
| value:int — バイトストリームに下位 16 ビットが書き込まれる 32 ビット整数です。 |
public function writeUnsignedInt(value:uint):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームに 32 ビット符号なし整数を書き込みます。
パラメータ
| value:uint — バイトストリームに書き込む符号なし整数です。 |
public function writeUTF(value:String):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームに UTF-8 ストリングを書き込みます。最初に UTF-8 ストリングの長さがバイト単位で 16 ビット整数として書き込まれ、その後にストリングの文字を表すバイトが続きます。
パラメータ
| value:String — 書き込まれるストリング値です。 |
例外 public function writeUTFBytes(value:String):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
バイトストリームに UTF-8 ストリングを書き込みます。writeUTF() メソッドと似ていますが、writeUTFBytes() では、ストリングに 16 ビット長の接頭辞が付きません。
パラメータ
| value:String — 書き込まれるストリング値です。 |
次の例では、クラス
ByteArrayExample を使用して、ブールおよび pi の倍精度の浮動小数表現をバイト配列に書き込みます。ここでは以下の手順を実行します。
-
新しい ByteArray オブジェクトインスタンス
byteArr を宣言します。
-
バイトと等価のブール値
false を書き込み、長さをチェックしてその値を戻します。
- pi の数値と等価の倍精度の浮動小数を書き込みます。
- バイト配列に書き込まれた 9 バイトを 1 つずつ読み出します。
注意: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.
}
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Thu Jan 8 2009, 12:14 AM -08:00