AIRでのファイルの読み書き
今日はファイルの処理を勉強
まず、ファイルの開き方には同期的と非同期的の2種類があります。
2つの違いは
同期的:
ファイルの読み書きをしている間アプリケーションは待機状態になる。
非同期的:
ファイルの読み書きをしている間にもアプリケーションは別の処理を行うことが出来る。
ファイルの読み書きの処理が多いアプリケーションでは同期的だとアプリケーションの動作が止まってしまうので、非同期的の方を使うといいそうです。
実際に超簡単な物を作ってみた
デスクトップのdata.txtというファイルを開いたり、書き込んでみたりするというもの
いろいろ解説
まず、ファイルを開くとき同期、非同期とは別にwrite、read、append, updateの4つのモードがあります。
write:
指定したファイルが存在する場合は上書きし、存在しない場合は新たに生成します。
read:
指定したファイルが存在する場合は読み取り専用で開き、存在しない場合はエラーを出します。
append:
指定したファイルが存在する場合は書き込む文字列を末尾に追加します、存在しない場合は新たに生成します。
update:
指定したファイルが存在する場合は読み書きモードで開き、存在しない場合は新たに生成します。
例えばファイルを同期的にreadで開きたいときは
var file:File = File.desktopDirectory.resolvePath("data.txt"); //デスクトップのdata.txt var stream:FileStream = new FileStream(); stream.open(file, "read"); //"read"の部分はFileMode.READでもOK 以下、読み込み処理
こんな感じです。
次に非同期の場合は
stream.addEventListener(Event.COMPLETE, readFunction); //readFunctionの中で読み込み処理 //読み込みモードで非同期的に開く stream.openAsync(file, FileMode.READ);
というように、ファイルのロードが完了したら読み込み処理を行うというように書きます。
読み込み処理などはソースコードを参照してください。