运行时版本: | AIR 1.0 Flash Player 9 |
IDataOutput 接口提供一组用于写入二进制数据的方法。此接口是读取二进制数据的 IDataInput 接口的 I/O 对应接口。IDataOutput 接口是由 FileStream、Socket 和 ByteArray 类实现的。
默认情况下,所有 IDataInput 和 IDataOutput 操作均为“bigEndian”(序列中的最高有效字节存储在最低或第一个存储地址),而且都不分块。
符号扩展名仅在读取数据时有效,写入数据时无效。因此,无需单独的写入方法就可以使用 IDataInput.readUnsignedByte()
和 IDataInput.readUnsignedShort()
。换言之:
-
将
IDataOutput.writeByte()
与 IDataInput.readUnsignedByte()
和 IDataInput.readByte()
一起使用。
-
将
IDataOutput.writeShort()
与 IDataInput.readUnsignedShort()
和 IDataInput.readShort()
一起使用。
查看示例
endian:String
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
数据的字节顺序:为 Endian 类中的 BIG_ENDIAN
或 LITTLE_ENDIAN
常量。
实现 public function get endian():String
public function set endian(value:String):void
另请参见
objectEncoding:uint
[读写]
运行时版本: | AIR 1.0 Flash Player 9 |
用于确定在使用 writeObject()
方法写入或读取二进制数据时是使用 AMF3 格式还是 AMF0 格式。该值为 ObjectEncoding 类中的常数。
实现 public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
另请参见
public function writeBoolean(value:Boolean):void
运行时版本: | AIR 1.0 Flash Player 9 |
写入布尔值。根据 value
参数写入单个字节。如果为 true
,则写入 1,如果为 false
,则写入 0。
参数
| value:Boolean —
确定写入哪个字节的布尔值。如果该参数为 true ,则写入 1;如果为 false ,则写入 0。
|
public function writeByte(value:int):void
运行时版本: | AIR 1.0 Flash Player 9 |
写入一个字节。使用了该参数的低 8 位;忽略了高 24 位。
参数
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
运行时版本: | AIR 1.0 Flash Player 9 |
在指定的字节数组、字节
中,从偏移量
(使用从零开始的索引)指定的字节开始,向文件流、字节流或字节数组中写入一个长度由 length
指定的字节序列。
如果省略 length
参数,则使用默认长度 0 并从 offset
开始写入整个缓冲区。如果还省略了 offset
参数,则写入整个缓冲区。
如果 offset
或 length
参数超出范围,它们将被锁定到 bytes
数组的开头和结尾。
参数
| bytes:ByteArray — 要写入的字节数组。 |
|
| offset:uint (default = 0 ) — 从零开始的索引,指定在数组中开始写入的位置。 |
|
| length:uint (default = 0 ) — 一个无符号整数,指定在缓冲区中的写入范围。 |
public function writeDouble(value:Number):void
运行时版本: | AIR 1.0 Flash Player 9 |
写入 IEEE 754 双精度(64 位)浮点数。
参数
public function writeFloat(value:Number):void
运行时版本: | AIR 1.0 Flash Player 9 |
写入 IEEE 754 单精度(32 位)浮点数。
参数
public function writeInt(value:int):void
运行时版本: | AIR 1.0 Flash Player 9 |
写入一个带符号的 32 位整数。
参数
public function writeMultiByte(value:String, charSet:String):void
运行时版本: | AIR 1.0 Flash Player 9 |
使用指定的字符集将多字节字符串写入文件流、字节流或字节数组中。
参数
public function writeObject(object:*):void
运行时版本: | AIR 1.0 Flash Player 9 |
以 AMF 序列化格式将对象写入文件流、字节流或字节数组中。
参数
另请参见
public function writeShort(value:int):void
运行时版本: | AIR 1.0 Flash Player 9 |
写入一个 16 位整数。使用了该参数的低 16 位;忽略了高 16 位。
参数
public function writeUnsignedInt(value:uint):void
运行时版本: | AIR 1.0 Flash Player 9 |
写入一个无符号的 32 位整数。
参数
| value:uint — 一个无符号的整型字节值。 |
public function writeUTF(value:String):void
运行时版本: | AIR 1.0 Flash Player 9 |
将 UTF-8 字符串写入文件流、字节流或字节数组中。先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节。
参数
引发 public function writeUTFBytes(value:String):void
运行时版本: | AIR 1.0 Flash Player 9 |
写入一个 UTF-8 字符串。类似于 writeUTF()
,但不使用 16 位长度的词为字符串添加前缀。
参数
以下示例使用
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.
}
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Sun Dec 14 2008, 10:39 PM -08:00