读取和写入文件的工作流程

Adobe AIR 1.0 和更高版本

读取和写入文件的工作流程如下所示。

初始化指向路径的 File 对象。

File 对象表示您要使用的文件(或您以后将创建的文件)的路径。

var file = air.File.documentsDirectory; 
file = file.resolvePath("AIR Test/testFile.txt");

此例使用 File 对象的 File.documentsDirectory 属性和 resolvePath() 方法来初始化 File 对象。不过,有许多其他方式可以将 File 对象指向文件。有关详细信息,请参阅 将 File 对象指向文件

初始化 FileStream 对象。

调用 FileStream 对象的 open() 方法或 openAsync() 方法。

具体调用哪个方法取决于您希望是以同步还是异步方式打开文件。使用 File 对象作为打开方法的 file 参数。对于 fileMode 参数,请指定 FileMode 类中的一个常量,以指定使用文件的方式。

例如,以下代码将初始化一个 FileStream 对象,该对象用于创建一个文件并覆盖所有现有数据:

var fileStream = new air.FileStream(); 
fileStream.open(file, air.FileMode.WRITE); 

有关详细信息,请参阅 初始化 FileStream 对象以及打开和关闭文件 FileStream 打开模式

如果您以异步方式打开了文件(使用 openAsync() 方法),请为 FileStream 对象添加并设置事件侦听器。

这些事件侦听器方法响应在各种情形下由 FileStream 对象调度的事件。这些情形包括:从文件读取数据时、遇到 I/O 错误时、要写入的全部数据量已写入时。

有关详细信息,请参阅 异步编程和以异步方式打开的 FileStream 对象所生成的事件

根据需要包含用于读取和写入数据的代码。

FileStream 类中有许多与读取和写入相关的方法。(它们都以“read”或“write”开头。)具体选择使用哪个方法读取或写入数据取决于目标文件中数据的格式。

例如,如果目标文件中的数据为 UTF 编码的文本,您可以使用 readUTFBytes() writeUTFBytes() 方法。如果您希望将数据作为字节数组处理,您可以使用 readByte() readBytes() writeByte() writeBytes() 方法。有关详细信息,请参阅 数据格式以及选择要使用的读取和写入方法

如果以异步方式打开了文件,请确保在调用读取方法前有足够的可用数据。有关详细信息,请参阅 读取缓冲区和 FileStream 对象的 bytesAvailable 属性

写入文件之前,如果要检查可用磁盘空间量,您可以检查 File 对象的 spaceAvailable 属性。有关详细信息,请参阅 确定卷上的可用空间

当您处理完文件后,请调用 FileStream 对象的 close() 方法。

调用 close() 方法可使文件对其他应用程序可用。

有关详细信息,请参阅 初始化 FileStream 对象以及打开和关闭文件

若要查看使用 FileStream 类读取和写入文件的范例应用程序,请参阅 Adobe AIR 开发人员中心上的以下文章: