Flash Player 10 añadió los métodos
load()
y
save()
a la clase FileReference. Estos métodos también se encuentran en AIR 1.5; la clase File hereda los métodos de FileReference. Estos métodos se diseñaron para proporcionar un medio seguro para cargar y guardar datos de archivos en Flash Player. Sin embargo, las aplicaciones de AIR también pueden utilizar estos métodos como un modo sencillo de cargar y guardar archivos de forma asincrónica.
Por ejemplo, el siguiente código guarda un cadena en un archivo de texto:
var file:File = File.applicationStorageDirectory.resolvePath("test.txt");
var str:String = "Hello.";
file.addEventListener(Event.COMPLETE, fileSaved);
file.save(str);
function fileSaved(event:Event):void
{
trace("Done.");
}
El parámetro
data
del método
save()
puede adoptar un valor String, XML o ByteArray. Cuando el argumento es un valor String o XML, el método guarda el archivo como archivo de texto codificado como UTF-8.
Cuando se ejecuta este ejemplo de código, la aplicación muestra un cuadro de diálogo en el que el usuario selecciona el destino del archivo guardado.
El siguiente código carga una cadena de un archivo de texto codificado como UTF-8:
var file:File = File.applicationStorageDirectory.resolvePath("test.txt");
file.addEventListener(Event.COMPLETE, loaded);
file.load();
var str:String;
function loaded(event:Event):void
{
var bytes:ByteArray = file.data;
str = bytes.readUTFBytes(bytes.length);
trace(str);
}
La clase FileStream proporciona más funcionalidad que la que ofrecen los métodos
load()
y
save()
:
-
Con el uso de la clase FileStream, puede leer y escribir datos de forma sincrónica y asíncrona.
-
El uso de la clase FileStream permite escribir de forma incremental en un archivo.
-
La utilización de la clase FileStream permite abrir un archivo para acceso aleatorio (pudiendo escribir y leer en cualquier sección del archivo).
-
La clase FileStream permite especificar el tipo de acceso al archivo del que se dispone, estableciendo el parámetro
fileMode
del método
open()
u
openAsync()
.
-
La clase FileStream permite guardar datos en archivos sin tener que mostrar al usuario un cuadro de diálogo para abrir o guardar.
-
Puede utilizar directamente tipos distintos a los conjuntos de bytes al leer datos con la clase FileStream.