あんにんにっき。

日々思ったことや、おこったことを記録するブログ。要するに日記。

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とか書いていると、たまに文法が頭の中でこんがらがって、謎なコードを書いたりする。もうちょっと頻繁におうちコーディングをして、なれるようにしたい。