(仅限 AIR)
flash.filesystem
public class FileStream
继承FileStream Inheritance EventDispatcher Inheritance Object
实现 IDataInput, IDataOutput

运行时版本: AIR 1.0

使用 FileStream 对象读取和写入文件。通过调用 open() 方法可以同步打开文件,通过调用 openAsync() 方法可以异步打开文件。

以异步方式打开文件的好处是当 Adobe AIR 在后台运行读写过程时,可以执行其他代码。在以异步方式打开文件时,将随着操作的进行调度 progress 事件。

以同步方式打开的 File 对象其行为很类似于 ByteArray 对象;以异步方式打开的文件其行为很类似于 Socket 或 URLStream 对象。在以同步方式打开 File 对象时,当从基础文件中读取或向其中写入需要的数据时,调用方将暂停。在以异步方式打开文件时,将会立即缓冲写入到流的任何数据,然后再写入文件。

无论是以同步方式还是以异步方式从文件中读取数据,实际的读取方法都是同步的。两种情况都读取当前“可用的”数据。不同之处在于在以同步方式读取时,所有数据始终是可用的;而在以异步方式读取时,随着数据流入读取缓冲区,数据将逐渐变为可用。无论哪种方式,可以在当前时刻以同步方式读取的数据将由 bytesAvailable 属性表示。

处理异步输入的应用程序通常会注册 progress 事件并使用通过调用读取方法变为可用的数据。或者,应用程序可以通过注册 complete 事件并处理调度 complete 事件时的整个数据集,从而简单地等待所有数据变为可用。



公共属性
 属性定义方
  AIR-only bytesAvailable : uint
[只读 (read-only)] 返回可在输入缓冲区中读取的数据的字节数。
FileStream
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  AIR-only endian : String
数据的字节顺序:为 Endian 类中的 BIG_ENDIAN 或 LITTLE_ENDIAN 常量。
FileStream
  AIR-only objectEncoding : uint
指定在使用 readObject() 或 writeObject() 方法写入或读取二进制数据时是使用 AMF3 格式还是 AMF0 格式。
FileStream
  AIR-only position : Number
文件中的当前位置。
FileStream
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  AIR-only readAhead : Number
异步读取文件时请求的数据量。
FileStream
公共方法
 方法定义方
  
创建 FileStream 对象。
FileStream
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
关闭 FileStream 对象。
FileStream
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
AIR-only open(file:File, fileMode:String):void
以同步方式打开 FileStream 对象,指向由 file 参数指定的文件。
FileStream
  
AIR-only openAsync(file:File, fileMode:String):void
以异步方式打开 FileStream 对象,指向由 file 参数指定的文件。
FileStream
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
  
从文件流、字节流或字节数组中读取布尔值。
FileStream
  
从文件流、字节流或字节数组中读取带符号的字节。
FileStream
  
AIR-only readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
从文件流、字节流或字节数组中读取 length 参数指定的数据字节数。
FileStream
  
从文件流、字节流或字节数组中读取 IEEE 754 双精度浮点数。
FileStream
  
从文件流、字节流或字节数组中读取 IEEE 754 单精度浮点数。
FileStream
  
从文件流、字节流或字节数组中读取带符号的 32 位整数。
FileStream
  
AIR-only readMultiByte(length:uint, charSet:String):String
使用指定的字符集从文件流、字节流或字节数组中读取指定长度的多字节字符串。
FileStream
  
从文件流、字节流或字节数组中读取以 AMF 序列化格式编码的对象。
FileStream
  
从文件流、字节流或字节数组中读取带符号的 16 位整数。
FileStream
  
从文件流、字节流或字节数组中读取无符号的字节。
FileStream
  
从文件流、字节流或字节数组中读取无符号的 32 位整数。
FileStream
  
从文件流、字节流或字节数组中读取无符号的 16 位整数。
FileStream
  
从文件流、字节流或字节数组中读取 UTF-8 字符串。
FileStream
  
从字节流或字节数组中读取包含 个字节的 UTF-8 字节序列,并返回一个字符串。
FileStream
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
  
在 FileStream 对象的 position 属性指定的位置截断文件。
FileStream
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
  
写入布尔值。
FileStream
  
AIR-only writeByte(value:int):void
写入一个字节。
FileStream
  
AIR-only writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
在指定的字节数组、字节中,从偏移量(使用从零开始的索引)指定的字节开始,向文件流、字节流或字节数组中写入一个长度由 length 指定的字节序列。
FileStream
  
写入 IEEE 754 双精度(64 位)浮点数。
FileStream
  
写入 IEEE 754 单精度(32 位)浮点数。
FileStream
  
AIR-only writeInt(value:int):void
写入一个带符号的 32 位整数。
FileStream
  
AIR-only writeMultiByte(value:String, charSet:String):void
使用指定的字符集将多字节字符串写入文件流、字节流或字节数组中。
FileStream
  
AIR-only writeObject(object:*):void
以 AMF 序列化格式将对象写入文件流、字节流或字节数组中。
FileStream
  
写入一个 16 位整数。
FileStream
  
写入一个无符号的 32 位整数。
FileStream
  
将 UTF-8 字符串写入文件流、字节流或字节数组中。
FileStream
  
写入一个 UTF-8 字符串。
FileStream
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  指示 close() 方法的显式调用已关闭流。FileStream
  指出已到达流末尾。FileStream
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
  指示在异步文件 I/O 操作期间发生错误。FileStream
  指出已将缓冲数据写入文件。FileStream
  指出流上有可用的新数据。FileStream
属性详细信息
AIR-only bytesAvailable属性
bytesAvailable:uint  [只读 (read-only)]

运行时版本: AIR 1.0

返回可在输入缓冲区中读取的数据的字节数。在尝试使用某一种读取方法读取数据之前,用户代码必须调用 bytesAvailable 以确保有足够的数据可用。



实现
    public function get bytesAvailable():uint
AIR-only endian属性 
endian:String  [读写]

运行时版本: AIR 1.0

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



实现
    public function get endian():String
    public function set endian(value:String):void
AIR-only objectEncoding属性 
objectEncoding:uint  [读写]

运行时版本: AIR 1.0

指定在使用 readObject()writeObject() 方法写入或读取二进制数据时是使用 AMF3 格式还是 AMF0 格式。

该值为 ObjectEncoding 类中的常数。在默认情况下使用 AMF3 格式。



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

另请参见

AIR-only position属性 
position:Number  [读写]

运行时版本: AIR 1.0

文件中的当前位置。

此值可以按以下任一方式进行修改:

该位置定义为一个数字(而不是单位),以支持长度大于 232 字节的文件。此属性的值始终是一个小于 253 的整数。如果将此值设置为带有小数部分的数字,则会将此值舍入到最接近的整数。

在异步读取文件时,如果设置了 position 属性,应用程序将开始用从指定位置开始的数据填充读取缓冲区,而 bytesAvailable 属性可以设置为 0。在使用一种读取方法读取数据前等待 complete 事件;或在使用一种读取方法前等待 progress 事件并检查 bytesAvailable 属性。



实现
    public function get position():Number
    public function set position(value:Number):void

示例
下面的代码显示应用程序从文件读取数据时,FileStream 对象的 position 属性如何更新。
import flash.fileSystem.*;
import flash.utils.ByteArray;
import flash.events.Event;

var sourceFile:File = File.documentsDirectory.resolvePath("Apollo Test/test.txt");
var stream:FileStream = new FileStream();
stream.addEventListener(Event.COMPLETE, readBytes);
stream.openAsync(sourceFile, File);

function readBytes(e:Event):void {
    var bytes:ByteArray = new ByteArray();
    trace("position 0:", stream.position); // 0
    bytes[0] = stream.readByte();
    trace("position 1:", stream.position); // 1
    fileStream.readBytes(bytes, stream.position, 4); 
    trace("position 2:", stream.position); // 5
    stream.close();
}
AIR-only readAhead属性 
readAhead:Number  [读写]

运行时版本: AIR 1.0

异步读取文件时请求的数据量。

此属性指定异步流在当前位置以外尝试读取多少数据。此属性的默认值为无穷大:默认情况下,为执行异步读取而打开的文件一直读取到该文件的末尾。

从读取缓冲区读取数据不会更改 readAhead 属性的值。在从缓冲区读取数据时,会读入新数据以重新填充读取缓冲区。

readAhead 属性对以同步方式打开的文件不起作用。

由于数据是以异步方式读取的,因此 FileStream 对象将调度 事件. 在 progress 事件的事件处理函数方法中,查看所需的字节数是否可用(通过检查 bytesAvailable 属性),然后通过使用一种读取方法从读取缓冲区读取数据。



实现
    public function get readAhead():Number
    public function set readAhead(value:Number):void

示例
下面的代码显示如何使用 readAhead 属性将读入一个文件的数据量限制为 100 个字节:
import flash.filesystem.*;

var file:File = File.desktopDirectory.resolvePath("test.txt");
var fileStream:FileStream = new FileStream();
fileStream.readAhead = 100;
fileStream.addEventListener(ProgressEvent.PROGRESS, readProgressHandler)
fileStream.openAsync(file, FileMode.READ);
var results:ByteArray;

function readProgressHandler(event:ProgressEvent):void {
    if (fileStream.bytesAvailable >= 100) {
        fileStream.readBytes(results, 0, 100);
    }
}
构造函数详细信息
AIR-only FileStream()构造函数
public function FileStream()

运行时版本: AIR 1.0

创建 FileStream 对象。使用 open()openAsync() 方法打开文件。

另请参见

方法详细信息
AIR-only close()方法
public function close():void

运行时版本: AIR 1.0

关闭 FileStream 对象。

在调用 close() 方法后将无法读取或写入任何数据。如果以异步方式打开该文件(FileStream 对象使用 openAsync() 方法打开该文件),则调用 close() 方法将导致该对象调度 close 事件。

关闭应用程序将自动关闭与该应用程序中的 FileStream 对象相关联的所有文件。不过,最好在关闭应用程序之前,对以异步方式打开并具有要写入的未处理数据的所有 FileStream 对象注册 closed 事件(以确保写入数据)。

通过调用 open()openAsync() 方法可以重复使用 FileStream 对象。这将关闭与 FileStream 对象相关联的任何文件,但该对象不会调度 close 事件。

对于以异步方式打开的 FileStream 对象(使用 openAsync() 方法),即使为 FileStream 对象调用了 close() 事件并删除了引用该对象的属性和变量,只要有尚未完成操作,并且为操作的完成注册了事件处理函数,就不会将 FileStream 对象作为垃圾回收。特别是,只要以下情况之一仍然可能存在,就会永久保持未引用的 FileStream 对象:


事件
close:Event — 以异步方式打开的文件已关闭。

另请参见


示例

下面的代码以异步方式打开 FileStream 对象并将一个名为 test.txt 的文本文件写入到用户文档目录的 Apollo Test 子目录中。调用 FileStream 对象的 close() 方法将在写入数据后关闭该文件。
import flash.filesystem.*;
import flash.events.Event;
            
var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.openAsync(file, FileMode.WRITE);
fileStream.writeUTFBytes("Hello");
fileStream.addEventListener(Event.CLOSE, fileClosed);
fileStream.close();

function fileClosed(event:Event):void {
    trace("closed");
}

下面的代码以同步方式打开 FileStream 对象并将一个名为 test.txt 的文本文件写入到用户文档目录的 Apollo Test 子目录中。调用 FileStream 对象的 close() 方法将在写入数据后关闭该文件。
import flash.filesystem.*;
            
var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTF("Hello");
fileStream.close();
AIR-only open()方法 
public function open(file:File, fileMode:String):void

运行时版本: AIR 1.0

以同步方式打开 FileStream 对象,指向由 file 参数指定的文件。

如果 FileStream 对象已打开,则调用此方法将在打开文件前关闭文件,且不会为以前打开的文件传送任何进一步事件(包括 close)。

在支持文件锁定的系统中,在“写入”或“更新”模式(FileMode.WRITEFileMode.UPDATE)下打开的文件在关闭前将是不可读的。

参数

file:File — 指定要打开的文件的 File 对象。
 
fileMode:String — FileMode 类中的一个字符串,用于定义 FileStream 的功能(如读取或写入文件的功能)。


引发
IOError — 文件不存在;您没有足够的权限打开该文件;您正在打开文件以进行读取访问,但您没有读取权限;或您正在打开文件以进行写入访问,但您没有写入权限。
 
SecurityError — 文件位置位于应用程序目录中,并将 fileMode 参数设置为“追加”、“更新”或“写入”模式。

另请参见


示例

下面的代码显示如何同步打开用户文档目录的 Apollo Test 子目录中的 test.txt 文件,然后使用系统字符集作为文本编码将该文件读入到一个字符串中。
import flash.filesystem.*;

var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var str:String = fileStream.readMultiByte(file.size, File.systemCharset);
trace(str);
fileStream.close();
AIR-only openAsync()方法 
public function openAsync(file:File, fileMode:String):void

运行时版本: AIR 1.0

以异步方式打开 FileStream 对象,指向由 file 参数指定的文件。

如果 FileStream 对象已打开,则调用此方法将在打开文件前关闭文件,且不会为以前打开的文件传送任何进一步事件(包括 close)。

如果 fileMode 参数设置为 FileMode.READFileMode.UPDATE,则文件一经打开,AIR 就会将数据读入到输入缓冲区中,并在将数据读入到输入缓冲区时调度 progressopen 事件。

在支持文件锁定的系统中,在“写入”或“更新”模式(FileMode.WRITEFileMode.UPDATE)下打开的文件在关闭前将是不可读的。

参数

file:File — 指定要打开的文件的 File 对象。
 
fileMode:String — FileMode 类中的一个字符串,用于定义 FileStream 的功能(如读取或写入文件的功能)。


事件
ioError:IOErrorEvent — 文件不存在;您没有足够的权限打开该文件;您正在打开文件以进行读取访问,但您没有读取权限;或您正在打开文件以进行写入访问,但您没有写入权限。
 
progress:ProgressEvent — 在将数据读入到输入缓冲区时调度。(文件必须在 fileMode 参数设置为 FileMode.READFileMode.UPDATE 的情况下打开。)
 
complete:Event — 已将文件数据读入到输入缓冲区。(文件必须在 fileMode 参数设置为 FileMode.READFileMode.UPDATE 的情况下打开。)

引发
SecurityError — 文件位置位于应用程序目录中,并将 fileMode 参数设置为“追加”、“更新”或“写入”模式。

另请参见


示例

下面的代码显示如何异步打开用户文档目录的 Apollo Test 子目录中的 test.txt 文件,然后使用系统字符集作为文本编码将该文件读入到一个字符串中。
import flash.filesystem.*;
import flash.events.Event;

var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.addEventListener(Event.COMPLETE, fileCompleteHandler)
fileStream.openAsync(file, FileMode.READ);

function fileCompleteHandler(event:Event):void {
    var str:String = fileStream.readMultiByte(fileStream.bytesAvailable, File.systemCharset);
    trace(str);
    fileStream.close();
}
AIR-only readBoolean()方法 
public function readBoolean():Boolean

运行时版本: AIR 1.0

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

返回
Boolean — 一个布尔值,如果字节不为零,则为 true,否则为 false

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readByte()方法 
public function readByte():int

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取带符号的字节。

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

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readBytes()方法 
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取 length 参数指定的数据字节数。将从 offset 指定的位置开始,将字节读入 bytes 参数指定的 ByteArray 对象。

参数

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


事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readDouble()方法 
public function readDouble():Number

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取 IEEE 754 双精度浮点数。

返回
Number — 一个 IEEE 754 双精度浮点数。

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readFloat()方法 
public function readFloat():Number

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取 IEEE 754 单精度浮点数。

返回
Number — 一个 IEEE 754 单精度浮点数。

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readInt()方法 
public function readInt():int

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取带符号的 32 位整数。

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

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readMultiByte()方法 
public function readMultiByte(length:uint, charSet:String):String

运行时版本: AIR 1.0

使用指定的字符集从文件流、字节流或字节数组中读取指定长度的多字节字符串。

参数

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

注意:如果当前系统无法识别 charSet 参数的值,则 Adobe®Flash®Player 或 Adobe®AIR 将采用系统的默认代码页作为字符集。例如,charSet 参数的值(如在使用 01 而不是 1myTest.readMultiByte(22, "iso-8859-01") 中)可能适用于您的开发计算机,而不适用于其它计算机。在其他计算机上,Flash Player 或 AIR 运行时将使用系统的默认代码页。

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

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。

另请参见

AIR-only readObject()方法 
public function readObject():*

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取以 AMF 序列化格式编码的对象。

返回
* — 反序列化的对象

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。

另请参见

AIR-only readShort()方法 
public function readShort():int

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取带符号的 16 位整数。

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

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readUnsignedByte()方法 
public function readUnsignedByte():uint

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取无符号的字节。

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

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readUnsignedInt()方法 
public function readUnsignedInt():uint

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取无符号的 32 位整数。

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

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readUnsignedShort()方法 
public function readUnsignedShort():uint

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取无符号的 16 位整数。

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

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readUTF()方法 
public function readUTF():String

运行时版本: AIR 1.0

从文件流、字节流或字节数组中读取 UTF-8 字符串。假定字符串的前缀是无符号的短整型(以字节表示长度)。

此方法类似于 Java ® IDataInput 接口中的 readUTF() 方法。

返回
String — 由字符的字节表示形式生成的 UTF-8 字符串。

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only readUTFBytes()方法 
public function readUTFBytes(length:uint):String

运行时版本: AIR 1.0

从字节流或字节数组中读取包含 个字节的 UTF-8 字节序列,并返回一个字符串。

参数

length:uint — 要读取的字节数。

返回
String — 由指定长度字符的字节表示形式生成的 UTF-8 字符串。

事件
ioError:IOErrorEvent — 无法读取文件或文件未打开。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用读取功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法读取该文件(例如因为缺少该文件)。
 
EOFError — 为读取数据而指定的位置超过了可用的字节数(由 bytesAvailable 属性指定)。
AIR-only truncate()方法 
public function truncate():void

运行时版本: AIR 1.0

在 FileStream 对象的 position 属性指定的位置截断文件。

删除从 position 属性指定的位置到文件末尾之间的字节。必须打开文件以进行写入。


引发
IllegalOperationError — 文件未打开,无法写入。

另请参见


示例

下面的代码以同步方式打开用户文档目录的 Apollo Test 子目录中的 test.txt 文件,如果该文件的长度大于 100 个字符,则将其长度修剪为 100 个字符。
import flash.filesystem.*;

var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.UPDATE);
if (file.size > 100) {
    fileStream.position = 100;
    fileStream.truncate();
}
fileStream.close();

下面的代码以异步方式打开用户文档目录的 Apollo Test 子目录中的 test.txt 文件,如果该文件的长度大于 100 个字符,则将其长度修剪为 100 个字符。
var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.openAsync(file, FileMode.UPDATE);
trace("start", file.size)
if (file.size > 100) {
    fileStream.position = 100;
    fileStream.truncate();
}
fileStream.addEventListener(Event.CLOSE, fileClosed);
fileStream.close();
function fileClosed(event:Event):void {
    trace("closed", file.size); 
}
AIR-only writeBoolean()方法 
public function writeBoolean(value:Boolean):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeByte()方法 
public function writeByte(value:int):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeBytes()方法 
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

运行时版本: AIR 1.0

在指定的字节数组、字节中,从偏移量(使用从零开始的索引)指定的字节开始,向文件流、字节流或字节数组中写入一个长度由 length 指定的字节序列。

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

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeDouble()方法 
public function writeDouble(value:Number):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeFloat()方法 
public function writeFloat(value:Number):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeInt()方法 
public function writeInt(value:int):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeMultiByte()方法 
public function writeMultiByte(value:String, charSet:String):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。

另请参见

AIR-only writeObject()方法 
public function writeObject(object:*):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。

另请参见

AIR-only writeShort()方法 
public function writeShort(value:int):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeUnsignedInt()方法 
public function writeUnsignedInt(value:uint):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeUTF()方法 
public function writeUTF(value:String):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
AIR-only writeUTFBytes()方法 
public function writeUTFBytes(value:String):void

运行时版本: AIR 1.0

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

参数

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


事件
ioError:IOErrorEvent — 无法写入到该文件(例如因为缺少该文件)。仅对为进行异步操作而打开的文件(使用 openAsync() 方法)调度此事件。

引发
IOError — 文件尚未打开;文件已打开,但不是使用写入功能打开的;或对于已经打开以进行同步操作的文件(使用 open() 方法),无法写入该文件(例如因为缺少该文件)。
事件详细信息
AIR-only close 事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.CLOSE

运行时版本: AIR 1.0

指示 close() 方法的显式调用已关闭流。

Event.CLOSE 常量定义 close 事件对象的 type 属性的值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 已关闭其连接的对象。

另请参见

AIR-only complete 事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.COMPLETE

运行时版本: AIR 1.0

指出已到达流末尾。

Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 已完成加载的网络对象。

另请参见

AIR-only ioError 事件  
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

运行时版本: AIR 1.0

指示在异步文件 I/O 操作期间发生错误。

定义 ioError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
errorID 与特定错误关联的引用编号(仅限 AIR)。
target 发生输入/输出错误的网络对象。
text 要显示为错误消息的文本。
AIR-only outputProgress 事件  
事件对象类型: flash.events.OutputProgressEvent
属性 OutputProgressEvent.type = flash.events.OutputProgressEvent.OUTPUT_PROGRESS

运行时版本: AIR 1.0

指出已将缓冲数据写入文件。

定义 outputProgress 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
bytesPending 在侦听器处理该事件时要写入的剩余字节数。
bytesTotal 写入进程成功时最终将写入的总字节数。
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 报告进度的 FileStream 对象。
AIR-only progress 事件  
事件对象类型: flash.events.ProgressEvent
属性 ProgressEvent.type = flash.events.ProgressEvent.PROGRESS

运行时版本: AIR 1.0

指出流上有可用的新数据。

定义 progress 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
bytesLoaded 在侦听器处理事件时加载的项数或字节数。
bytesTotal 如果加载进程成功,最终将加载的项目或字节总数。
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 报告进度的 对象。