The
workflow for reading and writing files is as follows.
Initialize a File object that points to the path.
The File object
represents the path of the file that you want to work with (or a
file that you will later create).
var file = air.File.documentsDirectory;
file = file.resolvePath("AIR Test/testFile.txt");
This
example uses the
File.documentsDirectory
property
and the
resolvePath()
method of a File object to
initialize the File object. However, there are many other ways to
point a File object to a file. For more information, see
Pointing a File object to a file
.
Initialize a FileStream object.
Call the open() method or the openAsync() method of the FileStream object.
The
method you call depends on whether you want to open the file for synchronous
or asynchronous operations. Use the File object as the
file
parameter
of the open method. For the
fileMode
parameter,
specify a constant from the FileMode class that specifies the way
in which you will use the file.
For example, the following
code initializes a FileStream object that is used to create a file
and overwrite any existing data:
var fileStream = new air.FileStream();
fileStream.open(file, air.FileMode.WRITE);
For more
information, see
Initializing a FileStream object, and opening and closing files
and
FileStream open modes
.
If you opened the file asynchronously (using the openAsync() method), add and set up event listeners for the FileStream object.
These
event listener methods respond to events dispatched by the FileStream object
in various situations. These situations include when data is read
in from the file, when I/O errors are encountered, or when the complete
amount of data to be written has been written.
For details,
see
Asynchronous programming and the events generated by a FileStream object opened asynchronously
.
Include code for reading and writing data, as needed.
There are
many methods of the FileStream class related to reading and writing. (They
each begin with "read" or "write".) The method you choose to use
to read or write data depends on the format of the data in the target
file.
For example, if the data in the target file is UTF-encoded
text, you may use the
readUTFBytes()
and
writeUTFBytes()
methods.
If you want to deal with the data as byte arrays, you may use the
readByte()
,
readBytes()
,
writeByte()
,
and
writeBytes()
methods. For details, see
Data formats, and choosing the read and write methods to use
.
If
you opened the file asynchronously, then be sure that enough data
is available before calling a read method. For details, see
The read buffer and the bytesAvailable property of a FileStream object
.
Before
writing to a file, if you want to check the amount of disk space
available, you can check the spaceAvailable property of the File
object. For more information, see
Determining space available on a volume
.
Call the close() method of the FileStream object when you are done working with the file.
Calling the close() method makes the file
available to other applications.
For details, see
Initializing a FileStream object, and opening and closing files
.
To
see a sample application that uses the FileStream class to read
and write files, see the following articles at the Adobe AIR Developer
Center: