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. } } } }