Titanium Mobileでファイル出力
// ファイル取得 var f = Titanium.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory, 'test.txt'); // ファイルの中身を読み込む。ない場合は空白にしておく。 var fileData = f.read(); var val = (fileData) ? fileData.toString() : ""; // textAreaの生成。ファイルの中身を初期値(value)に指定 var ta1 = Titanium.UI.createTextArea({ value:val, height:100, width:300, top:5, color:'#888', textAlign:'left', borderWidth:2, borderColor:'#bbb', borderRadius:5 }); // returnを押すたびに、textAreaの中身をファイルに出力(なければ新規作成される) ta1.addEventListener('return', function(e){ f.write(ta1.value); });
Titanium.Filesystem.getFileで取得した、File Objectには、 read の他にwrite というメソッドもある。
使い方は簡単で、writeの引数に書きたい内容を指定してやればOK.
(画像とかの出力については今回は検討しない。文字列の入出力を考えている。)
上記のコードを適当なwindowにaddして実行すると、初回は空白のtextAreaで画面が起動する。
なにか入力し、returnを押すと、その地点での内容がファイル出力されるので、次回起動時にはそちらから内容を読み込んでtextAreaに表示するようになっている。まあ、出力のタイミングはいくらでも変更できる。returnではなく、変更時に都度出力とか、用途に合わせて。
ファイルの出力については、追記ではなく、上書きとなっている。
コメントにも書いてあるが、ファイルが存在しない場合、新規作成した上で出力される。
余談だけど、ここ最近の仕事ではvb.netを使っているので、javascriptとか書いていると、たまに文法が頭の中でこんがらがって、謎なコードを書いたりする。もうちょっと頻繁におうちコーディングをして、なれるようにしたい。