用于 Adobe® Flash® Platform 的 ActionScript® 3.0 参考
主页  |  隐藏包列表和类列表 |   |   |  新增内容  |  索引  |  附录  |  为什么显示为英语?
过滤条件: 正在从服务器检索数据...
正在从服务器检索数据...
flash.utils 

IDataOutput  - AS3

flash.utils
接口public interface IDataOutput
实现器 ByteArray, FileStream, Socket

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

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() 一起使用。

查看示例

相关 API 元素



公共属性
 属性由以下参数定义
  endian : String
数据的字节顺序:为 Endian 类中的 BIG_ENDIAN 或 LITTLE_ENDIAN 常量。
IDataOutput
  objectEncoding : uint
用于确定在使用 writeObject() 方法写入或读取二进制数据时是使用 AMF3 格式还是 AMF0 格式。
IDataOutput
公共方法
 方法由以下参数定义
  
写入布尔值。
IDataOutput
  
写入一个字节。
IDataOutput
  
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
在指定的字节数组 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

属性
endian:String

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

数据的字节顺序:为 Endian 类中的 BIG_ENDIANLITTLE_ENDIAN 常量。



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

相关 API 元素

objectEncoding

属性 
objectEncoding:uint

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

用于确定在使用 writeObject() 方法写入或读取二进制数据时是使用 AMF3 格式还是 AMF0 格式。该值为 ObjectEncoding 类中的常数。



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

相关 API 元素

方法详细信息

writeBoolean

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

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

写入布尔值。根据 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, Flash Lite 4

写入一个字节。使用了该参数的低 8 位;忽略了高 24 位。

参数

value:int — 一个整型字节值。

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 参数,则写入整个缓冲区。

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

参数

bytes:ByteArray — 要写入的字节数组。
 
offset:uint (default = 0) — 从零开始的索引,指定在数组中开始写入的位置。
 
length:uint (default = 0) — 一个无符号整数,指定在缓冲区中的写入范围。

writeDouble

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

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

写入 IEEE 754 双精度(64 位)浮点数。

参数

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

writeFloat

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

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

写入 IEEE 754 单精度(32 位)浮点数。

参数

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

writeInt

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

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

写入一个带符号的 32 位整数。

参数

value:int — 一个带符号的整型字节值。

writeMultiByte

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

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

使用指定的字符集将多字节字符串写入文件流、字节流或字节数组中。

参数

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

writeObject

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

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

以 AMF 序列化格式将对象写入文件流、字节流或字节数组中。

参数

object:* — 要进行序列化处理的对象。

相关 API 元素

writeShort

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

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

写入一个 16 位整数。使用了该参数的低 16 位;忽略了高 16 位。

参数

value:int — 一个整型字节值。

writeUnsignedInt

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

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

写入一个无符号的 32 位整数。

参数

value:uint — 一个无符号的整型字节值。

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

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

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

写入一个 UTF-8 字符串。类似于 writeUTF(),但不使用 16 位长度的词为字符串添加前缀。

参数

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

DataOutputExample.as

以下示例使用 DataOutputExample 类将布尔值和 pi 的双精度浮点表示形式写入字节数组。这是使用以下步骤完成的:
  1. 声明新的 ByteArray 对象实例 byteArr
  2. 写入布尔值 false 的字节等效值和数学值 pi 的双精度浮点等效值。
  3. 重新读取布尔值和双精度浮点数。

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

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




[ X ]为什么显示为英语?
《ActionScript 3.0 参考》中的内容以英语显示

《ActionScript 3.0 参考》中的部分内容未翻译成所有语言。当某个语言元素未翻译时,将显示为英语。例如,ga.controls.HelpBox 类未翻译成任何语言。因此在简体中文版的参考中,ga.controls.HelpBox 类显示为英语。