Flash Player 10 a ajouté les méthodes
load()
et
save()
dans la classe FileReference. Ces méthodes sont également présentes dans AIR 1.5, et la classe File hérite des méthodes de la classe FileReference. L’objectif de ces méthodes est de fournir aux utilisateurs un moyen sécurisé pour charger et enregistrer les données des fichiers dans Flash Player. Toutefois, les applications AIR peuvent également les utiliser pour charger et enregistrer les fichiers de façon asynchrone.
Par exemple, le code suivant enregistre une chaîne dans un fichier texte :
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.");
}
Le paramètre
data
de la méthode
save()
peut prendre une valeur String, XML ou ByteArray. Lorsque l’argument est une valeur String ou XML, la méthode enregistre le fichier sous forme de fichier texte au format UTF-8.
Lorsque cet exemple de code s’exécute, l’application présente une boîte de dialogue qui permet à l’utilisateur de sélectionner la destination du fichier enregistré.
Le code suivant charge une chaîne à partir d’un fichier texte 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 classe FileStream offre plus de fonctionnalités que celles fournies par les méthodes
load()
et
save()
:
-
La classe FileStream vous permet de lire et d’écrire des données de façon synchrone et asynchrone.
-
La classe FileStream vous permet d’écrire dans un fichier de façon incrémentielle.
-
La classe FileStream vous permet d’ouvrir un fichier en mode aléatoire (lecture et écriture dans toute section du fichier).
-
La classe FileStream vous permet de spécifier le type d’accès au fichier disponible pour le fichier via la définition du paramètre
fileMode
de la méthode
open()
ou
openAsync()
.
-
La classe FileStream vous permet d’enregistrer des données dans des fichiers sans présenter à l’utilisateur une boîte de dialogue Ouvrir ou Enregistrer.
-
Lors de la lecture de données avec la classe FileStream, vous pouvez utiliser directement des types autres que des tableaux d’octets.