flash.utils
public class ByteArray
继承ByteArray Inheritance Object
实现 IDataInput, IDataOutput
子类 ByteArrayAsset

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

ByteArray 类提供用于优化读取、写入以及处理二进制数据的方法和属性。

注意:ByteArray 类适用于需要在字节层访问数据的高级 开发人员。

内存中的数据是一个压缩字节数组(数据类型的最紧凑表示形式),但可以使用标准 [](数组访问)运算符来操作 ByteArray 类的实例。也可以使用与 URLStream 和 Socket 类中的方法相类似的方法将它作为内存中的文件进行读取和写入。

此外,还支持 zlib 压缩和解压缩,以及 Action Message Format (AMF) 对象序列化。

ByteArray 类可能的用途包括:

查看示例

另请参见

[] (array access)
Socket 类
URLStream 类


公共属性
 属性定义方
  bytesAvailable : uint
[只读 (read-only)] 可从字节数组的当前位置到数组末尾读取的数据的字节数。
ByteArray
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  defaultObjectEncoding : uint
[静态] 指示用于新 ByteArray 实例的 ByteArray 类的默认对象编码。
ByteArray
  endian : String
更改或读取数据的字节顺序;Endian.BIG_ENDIAN 或 Endian.LITTLE_ENDIAN。
ByteArray
  length : uint
ByteArray 对象的长度(以字节为单位)。
ByteArray
  objectEncoding : uint
用于确定在写入或读取 ByteArray 实例时应使用 ActionScript 3.0、ActionScript 2.0 还是 ActionScript 1.0 格式。
ByteArray
  position : uint
将文件指针的当前位置(以字节为单位)移动或返回到 ByteArray 对象中。
ByteArray
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
创建一个表示填充的字节数组的 ByteArray 实例,以便使用此类中的方法和属性来优化数据存储和数据流。
ByteArray
  
清除字节数组的内容,并将 length 和 position 属性重置为 0。
ByteArray
  
compress(algorithm:String):void
压缩字节数组。
ByteArray
  
使用 deflate 压缩算法压缩字节数组。
ByteArray
 Inherited
指示对象是否已经定义了指定的属性。
Object
  
使用 deflate 压缩算法将字节数组解压缩。
ByteArray
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
  
从字节流中读取布尔值。
ByteArray
  
从字节流中读取带符号的字节。
ByteArray
  
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
从字节流中读取 length 参数指定的数据字节数。
ByteArray
  
从字节流中读取一个 IEEE 754 双精度(64 位)浮点数。
ByteArray
  
从字节流中读取一个 IEEE 754 单精度(32 位)浮点数。
ByteArray
  
从字节流中读取一个带符号的 32 位整数。
ByteArray
  
readMultiByte(length:uint, charSet:String):String
使用指定的字符集从字节流中读取指定长度的多字节字符串。
ByteArray
  
从字节数组中读取一个以 AMF 序列化格式进行编码的对象。
ByteArray
  
从字节流中读取一个带符号的 16 位整数。
ByteArray
  
从字节流中读取无符号的字节。
ByteArray
  
从字节流中读取一个无符号的 32 位整数。
ByteArray
  
从字节流中读取一个无符号的 16 位整数。
ByteArray
  
从字节流中读取一个 UTF-8 字符串。
ByteArray
  
从字节流中读取一个由 length 参数指定的 UTF-8 字节序列,并返回一个字符串。
ByteArray
 Inherited
设置循环操作动态属性的可用性。
Object
  
将字节数组转换为字符串。
ByteArray
  
解压缩字节数组。
ByteArray
 Inherited
返回指定对象的原始值。
Object
  
写入布尔值。
ByteArray
  
在字节流中写入一个字节。
ByteArray
  
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
将指定字节数组 bytes(起始偏移量为 bytes,从 0 开始的索引)中包含 length 个字节的字节序列写入字节流。
ByteArray
  
在字节流中写入一个 IEEE 754 双精度(64 位)浮点数。
ByteArray
  
在字节流中写入一个 IEEE 754 单精度(32 位)浮点数。
ByteArray
  
在字节流中写入一个带符号的 32 位整数。
ByteArray
  
使用指定的字符集将多字节字符串写入字节流。
ByteArray
  
将对象以 AMF 序列化格式写入字节数组。
ByteArray
  
在字节流中写入一个 16 位整数。
ByteArray
  
在字节流中写入一个无符号的 32 位整数。
ByteArray
  
将 UTF-8 字符串写入字节流。
ByteArray
  
将 UTF-8 字符串写入字节流。
ByteArray
属性详细信息
bytesAvailable属性
bytesAvailable:uint  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

可从字节数组的当前位置到数组末尾读取的数据的字节数。

每次访问 ByteArray 对象时,将 bytesAvailable 属性与读取方法结合使用,以确保读取有效的数据。



实现
    public function get bytesAvailable():uint
defaultObjectEncoding属性 
defaultObjectEncoding:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

指示用于新 ByteArray 实例的 ByteArray 类的默认对象编码。在创建新的 ByteArray 实例时,该实例上的编码以 defaultObjectEncoding 的值开头。defaultObjectEncoding 属性被初始化为 ObjectEncoding.AMF3

将对象写入二进制数据或从中读取对象时,将使用 objectEncoding 值来确定应使用 ActionScript 3.0、ActionScript2.0 还是 ActionScript 1.0 格式。该值为 ObjectEncoding 类中的常数。



实现
    public static function get defaultObjectEncoding():uint
    public function set defaultObjectEncoding(value:uint):void

另请参见

endian属性 
endian:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

更改或读取数据的字节顺序;Endian.BIG_ENDIANEndian.LITTLE_ENDIAN



实现
    public function get endian():String
    public function set endian(value:String):void

另请参见

length属性 
length:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

ByteArray 对象的长度(以字节为单位)。

如果将长度设置为大于当前长度的值,该字节数组的右侧将用零填充。

如果将长度设置为小于当前长度的值,将会截断该字节数组。



实现
    public function get length():uint
    public function set length(value:uint):void
objectEncoding属性 
objectEncoding:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

用于确定在写入或读取 ByteArray 实例时应使用 ActionScript 3.0、ActionScript 2.0 还是 ActionScript 1.0 格式。该值为 ObjectEncoding 类中的常数。



实现
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

另请参见

position属性 
position:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将文件指针的当前位置(以字节为单位)移动或返回到 ByteArray 对象中。下一次调用读取方法时将在此位置开始读取,或者下一次调用写入方法时将在此位置开始写入。



实现
    public function get position():uint
    public function set position(value:uint):void
构造函数详细信息
ByteArray()构造函数
public function ByteArray()

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

创建一个表示填充的字节数组的 ByteArray 实例,以便使用此类中的方法和属性来优化数据存储和数据流。

方法详细信息
clear()方法
public function clear():void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

清除字节数组的内容,并将 lengthposition 属性重置为 0。显式调用此方法将释放 ByteArray 实例占用的内存。

compress()方法 
public function compress(algorithm:String):void

压缩字节数组。将压缩整个字节数组。对于在 Adobe AIR 中运行的内容,可以通过传递一个值(在 CompressionAlgorithm 类中定义)作为 algorithm 参数来指定压缩算法。Flash Player 只支持默认的 zlib 算法。

在调用后,ByteArray 的 length 属性将设置为新长度。position 属性将设置为字节数组末尾。

http://www.ietf.org/rfc/rfc1950.txt 中介绍了 zlib 压缩的数据格式。

http://www.ietf.org/rfc/rfc1951.txt 中介绍了 deflate 压缩算法。

这种 deflate 压缩算法用于多种压缩格式,如 zlib、gzip、一些 zip 实现等。在使用这些压缩格式之一压缩数据时,除了存储原始数据的压缩版本之外,压缩格式数据(例如 .zip 文件)还包括元数据信息。举例来说,各种文件格式中包括的元数据的类型有文件名、文件修改日期/时间、原始文件大小、可选的注释、校验和数据等。

例如,在使用 zlib 算法压缩 ByteArray 时,将以特定的格式构建生成的 ByteArray。一些字节包含有关所压缩数据的元数据,而另一些字节包含原始 ByteArray 数据的实际压缩版本。根据 zlib 压缩数据格式规范的定义,这些字节(即包含原始数据的压缩版本的部分)使用 deflate 算法进行压缩。因此,这些字节与对原始 ByteArray 调用 compress( CompressionAlgorithm.DEFLATE) 所得的结果相同。但是,compress( CompressionAlgorithm.ZLIB) 所得的结果包括额外的元数据,而 compress( air. CompressionAlgorithm.DEFLATE) 的结果只包括原始 ByteArray 数据的压缩版本,没有任何其它内容。

若要使用 deflate 格式以 gzip 或 zip 等特定格式压缩 ByteArray 实例的数据,不能只调用 compress( air. CompressionAlgorithm.DEFLATE)。必须创建一个按照压缩格式规范构建的 ByteArray,包括相应的元数据以及使用 deflate 格式获取的压缩数据。同样,若要对以 gzip 或 zip 等格式压缩的数据进行解码,对这些数据不能只调用 uncompress( air. CompressionAlgorithm.DEFLATE)。首先,必须将元数据与压缩数据分离,然后才能使用 deflate 格式对压缩数据进行解压缩。

参数

algorithm:String (default = NaN) — 压缩时所用的压缩算法。有效值定义为 CompressionAlgorithm 类中的常量。默认情况下使用 zlib 格式。仅为 Adobe AIR 中运行的内容识别此参数。Flash Player 只支持默认的 zlib 算法,如果尝试为此参数传递一个值,Flash Player 将引发异常。 调用 compress( air. CompressionAlgorithm.DEFLATE) 与调用 deflate() 方法效果相同。

另请参见

deflate()方法 
public function deflate():void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

使用 deflate 压缩算法压缩字节数组。压缩整个字节数组。

在调用后,ByteArray 的 length 属性将设置为新长度。 position 属性将设置为字节数组末尾。

http://www.ietf.org/rfc/rfc1951.txt 中介绍了 deflate 压缩算法。

若要使用 deflate 格式以 gzip 或 zip 等特定格式压缩 ByteArray 实例的数据,不能只调用 deflate()。必须创建一个按照压缩格式规范构建的 ByteArray,包括相应的元数据以及使用 deflate 格式获取的压缩数据。同样,若要对以 gzip 或 zip 等格式压缩的数据进行解码,对这些数据不能只调用 inflate()。首先,必须将元数据与压缩数据分离,然后才能使用 deflate 格式对压缩数据进行解压缩。

另请参见

inflate()方法 
public function inflate():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 10

使用 deflate 压缩算法将字节数组解压缩。字节数组必须已经使用相同的算法进行压缩。

在调用后,ByteArray 的 length 属性将设置为新长度。position 属性将设置为 0。

http://www.ietf.org/rfc/rfc1951.txt 中介绍了 deflate 压缩算法。

为了对使用 deflate 压缩算法的格式压缩的数据(如 gzip 或 zip 格式的数据)进行解码,对包含压缩格式数据的 ByteArray 不能只调用 inflate()。首先,必须将作为压缩数据格式的一部分而包括的元数据与实际压缩数据分开。有关详细信息,请参阅 compress() 方法的描述。


引发
IOError — 数据不是有效的压缩数据;它不是使用用于压缩的相同压缩算法进行压缩的。

另请参见

readBoolean()方法 
public function readBoolean():Boolean

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取布尔值。读取单个字节,如果字节非零,则返回 true,否则返回 false

返回
Boolean — 如果字节不为零,则返回 true,否则返回 false

引发
EOFError — 没有足够的数据可供读取。
readByte()方法 
public function readByte():int

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取带符号的字节。

返回值的范围是从 -128 到 127。

返回
int — 介于 -128 和 127 之间的整数。

引发
EOFError — 没有足够的数据可供读取。
readBytes()方法 
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取 length 参数指定的数据字节数。从 offset 指定的位置开始,将字节读入 bytes 参数指定的 ByteArray 对象中,并将字节写入目标 ByteArray 中。

参数

bytes:ByteArray — 要将数据读入的 ByteArray 对象。
 
offset:uint (default = 0)bytes 中的偏移(位置),应从该位置写入读取的数据。
 
length:uint (default = 0) — 要读取的字节数。默认值 0 导致读取所有可用的数据。


引发
EOFError — 没有足够的数据可供读取。
readDouble()方法 
public function readDouble():Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取一个 IEEE 754 双精度(64 位)浮点数。

返回
Number — 双精度(64 位)浮点数。

引发
EOFError — 没有足够的数据可供读取。
readFloat()方法 
public function readFloat():Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取一个 IEEE 754 单精度(32 位)浮点数。

返回
Number — 单精度(32 位)浮点数。

引发
EOFError — 没有足够的数据可供读取。
readInt()方法 
public function readInt():int

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取一个带符号的 32 位整数。

返回值的范围是从 -2147483648 到 2147483647。

返回
int — 介于 -2147483648 和 2147483647 之间的 32 位带符号整数。

引发
EOFError — 没有足够的数据可供读取。
readMultiByte()方法 
public function readMultiByte(length:uint, charSet:String):String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

使用指定的字符集从字节流中读取指定长度的多字节字符串。

参数

length:uint — 要从字节流中读取的字节数。
 
charSet:String — 表示用于解释字节的字符集的字符串。可能的字符集字符串包括 "shift-jis""cn-gb""iso-8859-1"”等。有关完整列表,请参阅Supported Character Sets

注意:如果当前系统无法识别 charSet 参数的值,则应用程序将使用系统的默认代码页作为字符集。例如,charSet 参数的值(如在使用 01 而不是 1myTest.readMultiByte(22, "iso-8859-01") 中)可能在您的开发计算机上起作用,但在其它计算机上可能不起作用。在其他计算机上,应用程序将使用系统的默认代码页。

返回
String — UTF-8 编码的字符串。

引发
EOFError — 没有足够的数据可供读取。
readObject()方法 
public function readObject():*

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节数组中读取一个以 AMF 序列化格式进行编码的对象。

返回
* — 反序列化的对象。

引发
EOFError — 没有足够的数据可供读取。

另请参见

readShort()方法 
public function readShort():int

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取一个带符号的 16 位整数。

返回值的范围是从 -32768 到 32767。

返回
int — 介于 -32768 和 32767 之间的 16 位带符号整数。

引发
EOFError — 没有足够的数据可供读取。
readUnsignedByte()方法 
public function readUnsignedByte():uint

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取无符号的字节。

返回值的范围是从 0 到 255。

返回
uint — 介于 0 和 255 之间的 32 位无符号整数。

引发
EOFError — 没有足够的数据可供读取。
readUnsignedInt()方法 
public function readUnsignedInt():uint

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取一个无符号的 32 位整数。

返回值的范围是从 0 到 4294967295。

返回
uint — 介于 0 和 4294967295 之间的 32 位无符号整数。

引发
EOFError — 没有足够的数据可供读取。
readUnsignedShort()方法 
public function readUnsignedShort():uint

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取一个无符号的 16 位整数。

返回值的范围是从 0 到 65535。

返回
uint — 介于 0 和 65535 之间的 16 位无符号整数。

引发
EOFError — 没有足够的数据可供读取。
readUTF()方法 
public function readUTF():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取一个 UTF-8 字符串。假定字符串的前缀是无符号的短整型(以字节表示长度)。

返回
String — UTF-8 编码的字符串。

引发
EOFError — 没有足够的数据可供读取。

另请参见

readUTFBytes()方法 
public function readUTFBytes(length:uint):String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

从字节流中读取一个由 length 参数指定的 UTF-8 字节序列,并返回一个字符串。

参数

length:uint — 指明 UTF-8 字节长度的无符号短整型数。

返回
String — 由指定长度的 UTF-8 字节组成的字符串。

引发
EOFError — 没有足够的数据可供读取。
toString()方法 
public function toString():String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将字节数组转换为字符串。如果数组中的数据以 Unicode 字节顺序标记开头,应用程序在将其转换为字符串时将保持该标记。如果 System.useCodePage 设置为 true,应用程序在转换时会将数组中的数据视为处于当前系统代码页中。

返回
String — 字节数组的字符串表示形式。
uncompress()方法 
public function uncompress(algorithm:String):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

解压缩字节数组。对于在 Adobe AIR 中运行的内容,可以通过传递一个值(在 CompressionAlgorithm 类中定义)作为 algorithm 参数来指定压缩算法。字节数组必须已经使用相同的算法进行压缩。Flash Player 只支持默认的 zlib 算法。

在调用后,ByteArray 的 length 属性将设置为新长度。position 属性将设置为 0。

http://www.ietf.org/rfc/rfc1950.txt 中介绍了 zlib 压缩的数据格式。

http://www.ietf.org/rfc/rfc1951.txt 中介绍了 deflate 压缩算法。

在对使用 deflate 压缩算法的格式压缩的数据(如采用 gzip 或 zip 格式的数据)进行解码时,对包含压缩格式数据的 ByteArray 调用 uncompress(CompressionAlgorithm.DEFLATE) 将不起作用。首先,必须将作为压缩数据格式的一部分而包括的元数据与实际压缩数据分开。有关详细信息,请参阅 compress() 方法的描述。

参数

algorithm:String (default = NaN) — 解压缩时要使用的压缩算法。它必须是用于压缩该数据的相同的压缩算法。有效值定义为 CompressionAlgorithm 类中的常量。默认情况下使用 zlib 格式。仅为 Adobe AIR 中运行的内容识别此参数。Flash Player 只支持默认的 zlib 算法,如果尝试为此参数传递一个值,Flash Player 将引发异常。


引发
IOError — 数据不是有效的压缩数据;它不是使用用于压缩的相同压缩算法进行压缩的。

另请参见

writeBoolean()方法 
public function writeBoolean(value:Boolean):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

写入布尔值。根据 value 参数写入单个字节。如果为 true,则写入 1,如果为 false,则写入 0。

参数

value:Boolean — 确定写入哪个字节的布尔值。如果该参数为 true,则该方法写入 1;如果该参数为 false,则该方法写入 0。

writeByte()方法 
public function writeByte(value:int):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在字节流中写入一个字节。

使用参数的低 8 位。忽略高 24 位。

参数

value:int — 一个 32 位整数。低 8 位将被写入字节流。

writeBytes()方法 
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将指定字节数组 bytes(起始偏移量为 offset,从零开始的索引)中包含 length 个字节的字节序列写入字节流。

如果省略 length 参数,则使用默认长度 0;该方法将从 offset 开始写入整个缓冲区。如果还省略了 offset 参数,则写入整个缓冲区。

如果 offsetlength 超出范围,它们将被锁定到 bytes 数组的开头和结尾。

参数

bytes:ByteArray — ByteArray 对象。
 
offset:uint (default = 0) — 从 0 开始的索引,表示在数组中开始写入的位置。
 
length:uint (default = 0) — 一个无符号整数,表示在缓冲区中的写入范围。

writeDouble()方法 
public function writeDouble(value:Number):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在字节流中写入一个 IEEE 754 双精度(64 位)浮点数。

参数

value:Number — 双精度(64 位)浮点数。

writeFloat()方法 
public function writeFloat(value:Number):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在字节流中写入一个 IEEE 754 单精度(32 位)浮点数。

参数

value:Number — 单精度(32 位)浮点数。

writeInt()方法 
public function writeInt(value:int):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在字节流中写入一个带符号的 32 位整数。

参数

value:int — 要写入字节流的整数。

writeMultiByte()方法 
public function writeMultiByte(value:String, charSet:String):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

使用指定的字符集将多字节字符串写入字节流。

参数

value:String — 要写入的字符串值。
 
charSet:String — 指示要使用的字符集的字符串。可能的字符集字符串包括 "shift-jis""cn-gb""iso-8859-1"”等。有关完整列表,请参阅Supported Character Sets

writeObject()方法 
public function writeObject(object:*):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将对象以 AMF 序列化格式写入字节数组。

参数

object:* — 要序列化的对象。

另请参见

writeShort()方法 
public function writeShort(value:int):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在字节流中写入一个 16 位整数。使用参数的低 16 位。忽略高 16 位。

参数

value:int — 32 位整数,该整数的低 16 位将被写入字节流。

writeUnsignedInt()方法 
public function writeUnsignedInt(value:uint):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在字节流中写入一个无符号的 32 位整数。

参数

value:uint — 要写入字节流的无符号整数。

writeUTF()方法 
public function writeUTF(value:String):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将 UTF-8 字符串写入字节流。先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节。

参数

value:String — 要写入的字符串值。


引发
RangeError — 如果长度大于 65535。
writeUTFBytes()方法 
public function writeUTFBytes(value:String):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将 UTF-8 字符串写入字节流。类似于 writeUTF() 方法,但 writeUTFBytes() 不使用 16 位长度的词为字符串添加前缀。

参数

value:String — 要写入的字符串值。

示例 如何使用示例
ByteArrayExample.as

以下示例使用 ByteArrayExample 类将布尔值和 pi 的双精度浮点表示形式写入字节数组。这是使用以下步骤完成的:
  1. 声明新的 ByteArray 对象实例 byteArr
  2. 写入布尔值 false 的字节等效值,然后检查长度并重新读取。
  3. 写入数学值 pi 的双精度浮点等效值。
  4. 重新读取写入字节数组的九个字节中的每一个字节。

注意:在字节上调用 trace() 时,它将输出存储于字节数组中的字节的十进制等效值。

注意如何在末尾添加一段代码以检查文件结尾错误,确保读取的字节流没有超出文件结尾。

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