load() メソッドおよび save() メソッドの使用

Flash Player 10 以降、Adobe AIR 1.5 以降

Flash Player 10 では、FileReference クラスに load() メソッドおよび save() メソッドが追加されています。これらのメソッドは AIR 1.5 にもあり、File クラスがこれらのメソッドを FileReference クラスから継承しています。これらのメソッドは、Flash Player でユーザーが安全にファイルデータの読み込みや保存を行うことができるように設計されています。しかし、AIR アプリケーションでは、ファイルの非同期での読み込みや保存を簡単に実行するための手段として、これらのメソッドを使用することもできます。

例えば、次のコードは、文字列をテキストファイルに保存します。

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

data パラメーター( save() メソッド)は、String、XML、または ByteArray の値を指定できます。この引数が String または XML の値の場合、UTF-8 エンコード形式のテキストファイルとしてファイルが保存されます。

このコード例を実行すると、ファイルの保存先を選択するためのダイアログボックスが表示されます。

次のコードは、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); 
}

FileStream クラスを使用すると、 load() メソッドおよび save() メソッドよりも多くの機能を使用できます。次に例を示します。

  • FileStream クラスを使用すると、同期および非同期の両方でデータを読み書きできます。

  • FileStream クラスを使用すると、ファイルに対してインクリメンタルな書き込みを行うことができます。

  • FileStream クラスを使用すると、ファイルを開いてランダムアクセス(ファイルの任意の場所の読み書き)を実行できます。

  • FileStream クラスを使用すると、 fileMode パラメーター( open() メソッドまたは openAsync() メソッド)を設定することにより、ファイルに対するファイルアクセスの種類を指定できます。

  • FileStream クラスを使用すると、ファイルを開くダイアログボックスや名前を付けて保存ダイアログボックスを表示せずに、データをファイルに保存できます。

  • FileStream クラスを使用してデータを読み込む場合は、バイト配列以外の型を直接使用できます。