flash.utils.ByteArray 类的使用
ByteArray 类提供用于优化读取、写入以及处理二进制数据的方法和属性。
ByteArray字节数组中存储的是字节流。
所以,在你存入的内容,都是转化成字节的格式存储的。
boolean类型,占,一个字节,8位
double 类型,占,占八哥字节,8*8=64位。
不够位数的补0,例如,3.1415926,把其转化成二进制的形式然后在其数组中存储,然后按8位为一个字节,在ByteArray中占一个位置(注意),
例如:
byteArr.writeDouble(Math.PI);
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其中输出的结果中,例如64,就是其中排列中8位的十六进制
下面是,api中,关于此类的一个简单的实例:
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. } } } }