AIRではローカルPC上のファイルを読み書きができるので、簡単なデータの保存などに便利です。

まずは読み込み。

1.Fileクラスにパスを設定

file = File.applicationStorageDirectory.resolvePath("sample.txt");

2.fileStreamクラスを生成する

txstream = new FileStream ();

3.fileStreamクラスにイベント設定

txstream.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
txstream.addEventListener(Event.COMPLETE, onInputComplete);

4.ファイルを開く

txstream.openAsync(file, FileMode.READ);

5.読み込み完了したらファイルを読み込んで閉じる

function onInputComplete(event:Event):void {
try {
var str:String = txstream.readUTFBytes(txstream.bytesAvailable);
output.text = str;
tmptxt = str;
} catch (error:IOError) {
} finally {
txstream.close();
}
}

注意するのは、1ファイルを読み込むのに2クラス利用する点。
fileクラスがパスを指定して、fileStreamクラスが実際に読み込む感覚です。
また、AIR beta2以降はresolve()ではなくresolvePath()にメソッド名が変更になっているので、
サンプル等がそのまま動かなくてはまることがあると思います。


次に、書き込む処理。こちらはシンプル。

1.Fileクラスにパスを設定

file = File.applicationStorageDirectory.resolvePath("sample.txt");

2.fileStreamクラスを生成する

txstream = new FileStream ();

3.書き込み完了したらファイルを閉じる

try {
txstream.open(file, FileMode.WRITE);
txstream.writeUTFBytes(output.text);
} catch (error:IOError) {
} finally {
txstream.close();
}


今回のサンプルでは、これだけではシンプルすぎるので自動的に保存する処理を追加したものと、以前POSTした常駐機能を組み合わせたものを作成しました。
スタートアップに入れておくと便利です。

ソースとAIRファイル
ソースとAIRファイル(常駐機能付・windows用)

HTML5飯