ByteArray、16进制、字符串之间的转换:
package fengzi.convert
{
import flash.utils.ByteArray;
public class ByteArrayTranslated
{ /***
* 通过hax数据返回ByteArray
* @param hax 格式 "AA5A000100FF"
***/
public static function getHax(hax:String):ByteArray
{
var byte:ByteArray=new ByteArray();
for (var i:uint = 0; i<hax.length; i=i+2)
{
trace(hax.substr(i, 2));
trace(uint("0x"+hax.substr(i, 2)));
byte.writeByte(uint("0x"+hax.substr(i, 2)));
} return byte;
} /***
* 16进制数据返回ByteArray
* @param str 格式 "AA5A000100FF"
* @return bytes
***/
public static function from16ToByteArray(str:String):ByteArray
{
var bytes:ByteArray=new ByteArray();
var b_arr:Array = str.split("");
var b_length:int = b_arr.length;
for (var i:int=0; i<b_length-1; i+=2)
{
var b_char1:String = b_arr[i];
var b_char2:String = b_arr[i + 1];
var b_byte:int=parseInt(b_char1+b_char2,16);
//trace("b_byte:",b_byte);
bytes.writeByte(b_byte);
}
return bytes;
} /***
* String转ByteArray
* @param str 字符
* @return bytes
***/
public static function convertStringToByteArray(str:String):ByteArray
{
var bytes:ByteArray;
if (str)
{
bytes=new ByteArray();
bytes.writeUTFBytes(str);
}
return bytes;
} /***
* ByteArray转String
* @param bytes
* @return str
***/
public static function convertByteArrayToString(bytes:ByteArray):String
{
var str:String;
if (bytes)
{
bytes.position = 0;
str = bytes.readUTFBytes(bytes.length);
}
return str;
} /***
* 把ByteArray转换为16进制的形式的字符串
* @param ba
* @param name
* @return
***/
public static function byteArrayTo16(ba:ByteArray):String
{
ba.position = 0;
var b_str:String = "";
while (ba.bytesAvailable > 0)
{
var b_s:String = ba.readUnsignedByte().toString(16);
// trace("b_s:",b_s);
if (b_s.length < 2)
{
b_s = "0" + b_s;
}
b_str += b_s;
}
return b_str;
} } }