包 | flash.utils |
接口 | public interface IDataOutput |
实现器 | ByteArray, FileStream, Socket |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
默认情况下,所有 IDataInput 和 IDataOutput 操作均为“bigEndian”(序列中的最高有效字节存储在最低或第一个存储地址),而且都不分块。
符号扩展名仅在读取数据时有效,写入数据时无效。因此,无需单独的写入方法就可以使用 IDataInput.readUnsignedByte()
和 IDataInput.readUnsignedShort()
。换言之:
- 将
IDataOutput.writeByte()
与IDataInput.readUnsignedByte()
和IDataInput.readByte()
一起使用。 - 将
IDataOutput.writeShort()
与IDataInput.readUnsignedShort()
和IDataInput.readShort()
一起使用。
相关 API 元素
公共属性
属性 | 由以下参数定义 | ||
---|---|---|---|
endian : String
数据的字节顺序:为 Endian 类中的 BIG_ENDIAN 或 LITTLE_ENDIAN 常量。 | IDataOutput | ||
objectEncoding : uint
用于确定在使用 writeObject() 方法写入或读取二进制数据时是使用 AMF3 格式还是 AMF0 格式。 | IDataOutput |
公共方法
方法 | 由以下参数定义 | ||
---|---|---|---|
写入布尔值。 | IDataOutput | ||
写入一个字节。 | IDataOutput | ||
在指定的字节数组 bytes 中,从 offset(使用从零开始的索引)指定的字节开始,向文件流、字节流或字节数组中写入一个长度由 length 指定的字节序列。 | IDataOutput | ||
写入 IEEE 754 双精度(64 位)浮点数。 | IDataOutput | ||
写入 IEEE 754 单精度(32 位)浮点数。 | IDataOutput | ||
写入一个带符号的 32 位整数。 | IDataOutput | ||
使用指定的字符集将多字节字符串写入文件流、字节流或字节数组中。 | IDataOutput | ||
以 AMF 序列化格式将对象写入文件流、字节流或字节数组中。 | IDataOutput | ||
写入一个 16 位整数。 | IDataOutput | ||
写入一个无符号的 32 位整数。 | IDataOutput | ||
将 UTF-8 字符串写入文件流、字节流或字节数组中。 | IDataOutput | ||
写入一个 UTF-8 字符串。 | IDataOutput |
属性详细信息
endian | 属性 |
objectEncoding | 属性 |
方法详细信息
writeBoolean | () | 方法 |
writeByte | () | 方法 |
writeBytes | () | 方法 |
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在指定的字节数组 bytes
中,从 offset
(使用从零开始的索引)指定的字节开始,向文件流、字节流或字节数组中写入一个长度由 length
指定的字节序列。
如果省略 length
参数,则使用默认长度 0 并从 offset
开始写入整个缓冲区。如果还省略了 offset
参数,则写入整个缓冲区。
如果 offset
或 length
参数超出范围,它们将被锁定到 bytes
数组的开头和结尾。
参数
bytes:ByteArray — 要写入的字节数组。
| |
offset:uint (default = 0 ) — 从零开始的索引,指定在数组中开始写入的位置。
| |
length:uint (default = 0 ) — 一个无符号整数,指定在缓冲区中的写入范围。
|
writeDouble | () | 方法 |
writeFloat | () | 方法 |
writeInt | () | 方法 |
writeMultiByte | () | 方法 |
writeObject | () | 方法 |
writeShort | () | 方法 |
writeUnsignedInt | () | 方法 |
writeUTF | () | 方法 |
public function writeUTF(value:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将 UTF-8 字符串写入文件流、字节流或字节数组中。先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节。
参数
value:String — 要写入的字符串值。
|
引发
RangeError — 如果长度大于 65535。
|
writeUTFBytes | () | 方法 |
示例 如何使用本示例
DataOutputExample.as
以下示例使用
DataOutputExample
类将布尔值和 pi 的双精度浮点表示形式写入字节数组。这是使用以下步骤完成的:
- 声明新的 ByteArray 对象实例
byteArr
。 - 写入布尔值
false
的字节等效值和数学值 pi 的双精度浮点等效值。 - 重新读取布尔值和双精度浮点数。
注意如何在末尾添加一段代码以检查文件结尾错误,确保读取的字节流没有超出文件结尾。
package { import flash.display.Sprite; import flash.utils.ByteArray; import flash.errors.EOFError; public class DataOutputExample extends Sprite { public function DataOutputExample() { var byteArr:ByteArray = new ByteArray(); byteArr.writeBoolean(false); byteArr.writeDouble(Math.PI); byteArr.position = 0; try { trace(byteArr.readBoolean()); // false } 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. } } } }
Tue Jun 12 2018, 11:04 AM Z