ByteArrayベースとreadBytesとwriteBytesの簡単なテスト
6616 ワード
数値アクセス:
readBoolean,writeBoolean,readByte,writeByte等..以下Boolean、Byte等と略す...占有バイト数1:Boolean,Byte,UnsignedByte(byte単位でアクセスするため、所望のBooleanも1バイト占有する)占有バイト数2:Short,UnsignedShort占有バイト数4:Int,Float,UnsignedInt占有バイト数8:DoubleUnsignedは符号無しクラス型を表し、正数のみを表す、そうでなければ符号あり、正負数を表すことができる.
byteArray.readBytes(bytes:ByteArray,offset:uint=0,length:uint=0):voidはbyteArrayのbyteArrayからpositionが開始する、lengthのバイトをbytesに読み込み、bytesはoffsetから再生する.(bytesのpositionは変わらずbytesArrayのpositionは増加)
byteArray.writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
bytesのoffsetから、lengthバイトを読み出してbyteArrayに入れ、byteArrayはbyteArrayから運転開始(bytesのpositionは変わらずbyteArrayのpositionは増加)
まとめ:byteArrayはbyteArrayからpositionが始まる(読み書きにかかわらず)、bytesはoffsetから始まる(読み書きにかかわらず).
readBoolean,writeBoolean,readByte,writeByte等..以下Boolean、Byte等と略す...占有バイト数1:Boolean,Byte,UnsignedByte(byte単位でアクセスするため、所望のBooleanも1バイト占有する)占有バイト数2:Short,UnsignedShort占有バイト数4:Int,Float,UnsignedInt占有バイト数8:DoubleUnsignedは符号無しクラス型を表し、正数のみを表す、そうでなければ符号あり、正負数を表すことができる.
byteArray.readBytes(bytes:ByteArray,offset:uint=0,length:uint=0):voidはbyteArrayのbyteArrayからpositionが開始する、lengthのバイトをbytesに読み込み、bytesはoffsetから再生する.(bytesのpositionは変わらずbytesArrayのpositionは増加)
var byteArray:ByteArray = new ByteArray();
byteArray.writeInt(1);
trace ("byteArray.position:", byteArray.position); //byteArray.position: 4
byteArray.writeInt(2);
trace ("byteArray.position:", byteArray.position); //byteArray.position: 8
byteArray.writeInt(3);
trace ("byteArray.position:", byteArray.position); //byteArray.position: 12
byteArray.position = 0;
trace ("byteArray.position:", byteArray.position); //byteArray.position: 0
var bytes:ByteArray = new ByteArray();
bytes.writeInt(99);
byteArray.readBytes(bytes, 20, 4);
// byteArray.position , 4 byteArray.position 4;
// 4 offset ;
// byteArray.position=4 bytes.bytesAvailable=12-4=8;
// bytes 40 0 4 a 32 Int 1 bytes.bytesAvailable=40+4;
// bytes position。 b.position=0;
trace ("byteArray.position:", byteArray.position, "byteArray.bytesAvailable:", byteArray.bytesAvailable); //byteArray.position: 4 byteArray.bytesAvailable: 8
trace ("bytes.position:", bytes.position, "bytes.bytesAvailable:", bytes.bytesAvailable); //bytes.position: 0 bytes.bytesAvailable: 44
byteArray.writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
bytesのoffsetから、lengthバイトを読み出してbyteArrayに入れ、byteArrayはbyteArrayから運転開始(bytesのpositionは変わらずbyteArrayのpositionは増加)
var bytes:ByteArray = new ByteArray();
bytes.writeInt(1);
bytes.writeInt(2);
bytes.writeInt(3);
bytes.position = 0;
//byteArray.writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
// bytes offset , length byteArray ,byteArray byteArray.position .
//(bytes position , byteArray position )
var byteArray:ByteArray = new ByteArray();
byteArray.writeInt(100);
byteArray.writeInt(200);
byteArray.writeInt(300);
trace ("byteArray:", byteArray.position);
byteArray.writeBytes(bytes, 4, 8);
trace ("byteArray.position:", byteArray.position, "byteArray.bytesAvailable:", byteArray.bytesAvailable);
trace ("bytes.position:", bytes.position, "bytes.bytesAvailable:", bytes.bytesAvailable);
//bytes.position
//byteArray.position 8
//byteArray.position: 8 byteArray.bytesAvailable: 0
//bytes.position: 0 bytes.bytesAvailable: 12
byteArray.position = 0;
while (byteArray.bytesAvailable)
trace (byteArray.readInt());
//100
//200
//300
//2
//3
まとめ:byteArrayはbyteArrayからpositionが始まる(読み書きにかかわらず)、bytesはoffsetから始まる(読み書きにかかわらず).