Uso dei metodi load() e save()

Flash Player 10 e versioni successive, Adobe AIR 1.5 e versioni successive

In Flash Player 10 sono stati aggiunti i metodi load() e save() alla classe FileReference. Questi metodi sono presenti anche in AIR 1.5 e la classe File eredita i metodi dalla classe FileReference. Questi metodi sono stati progettati per fornire agli utenti un mezzo sicuro per caricare e salvare i dati dei file in Flash Player. Nelle applicazioni AIR, tuttavia, questi metodi possono anche essere usati come semplice metodo per caricare e salvare i file in modo asincrono.

Il codice riportato di seguito consente, ad esempio, di salvare una stringa in un file di testo:

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."); 
}

Il parametro data del metodo save() può accettare un valore String, XML o ByteArray. Quando l'argomento è un valore String o XML, il metodo salva il file come file di testo con codifica UTF-8.

All'esecuzione di questo esempio di codice, nell'applicazione viene visualizzata una finestra di dialogo in cui l'utente seleziona la destinazione del file salvato.

Il codice riportato di seguito carica una stringa dal file di testo con codifica 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 più funzionalità di quelle fornite dai metodi load() e save():

  • Usando la classe FileStream, potete leggere e scrivere i dati sia in modo sincrono che asincrono.

  • La classe FileStream consente di scrivere in modo incrementale in un file.

  • La classe FileStream consente di aprire un file per l'accesso casuale ai dati (sia per la lettura che per la scrittura in qualsiasi sezione del file).

  • La classe FileStream consente di specificare il tipo di accesso di cui disponete per un file specifico, impostando il parametro fileMode del metodo open() o openAsync().

  • La classe FileStream consente di salvare i dati nei file senza presentare all'utente una finestra di dialogo Apri o Salva.

  • Per la lettura dei dati tramite la classe FileStream, potete usare direttamente tipi diversi dagli array di byte.