1、readBytes | () | 方法 |
官方
从字节流中读取 length
参数指定的数据字节数。从 offset
指定的位置开始,将字节读入 bytes
参数指定的 ByteArray 对象中,并将字节写入目标 ByteArray 中。
参数
bytes:ByteArray — 要将数据读入的 ByteArray 对象。 | |
offset:uint (default = 0 ) — bytes 中的偏移(位置),应从该位置写入读取的数据。 | |
length:uint (default = 0 ) — 要读取的字节数。默认值 0 导致读取所有可用的数据。 |
注意:
offset就是在bytes中从offset这个位置开始写入。
length就是一段位移,一段在ByteArray中的位移。
如例
var bt2:ByteArray=new ByteArray();
var bt:ByteArray=new ByteArray();
bt.writeInt(1);
bt.writeUTF("aa");
bt.writeUTF("dd");
A:
bt.position=4; //这里设置position=4,下面的readBytes就应该从bt的4位置,开始读取数据到bt2中
bt.readBytes(bt2); //只将aa 和 dd 写进去bt2中了
bt2.position=0;
trace(bt2.readUTF().toString()); //显示 aa
B:
bt.positon=0;
bt.readBytes(bt2,2,bt.length); //这样bt2前面的两个字节是空的,但是
bt2.position=0; //这一步是多余,bt2的positon本来就是0,但是bt的position已经变成12
trace(bt2.readInt().toString()); //显示空,若设置bt2.position=2,则显示1
********************************************************************************************
bytesAvailable | 属性 |
bytesAvailable:uint
[]
可从字节数组的当前位置到数组末尾读取的数据的字节数。
每次访问 ByteArray 对象时,将 bytesAvailable
属性与读取方法结合使用,以确保读取有效的数据。
不管是read还是write都会叠加数组的position,read不会减少原数组的字节,bytesAvailable的数目完全取决于position的位置。
如例:
bt.readBytes(bt2,2,bt.length); //这样bt2前面的两个字节是空的
trace(bt.position); //12
trace(bt2.position) // 0
trace(bt2.bytesAvailable) ; //12+2=14