◆PROCESSING 逆引きリファレンス
カテゴリー:スマホ(AndroidMode)
文字列データを書き込むには(AndroidMode編)
【概要】
PROCESSINGにAndroidMode を導入する事で、PROCESSINGで開発したプログラムをAndroid端末上で動かす事ができるようになります。
AndroidModeの導入については「PROCESSINGをAndroid端末で動かすには(4.0版)」記事を参照してください。
アプリケーションでは、なんらかのデータを端末内に保存しておきたい場面が良くあります。
Androidで情報をファイルに保存するにはプリファレンスを使うのが便利ですが、PROCESSINGには手軽にテキスト情報を保存できる saveStrings 命令があります。
データを追記できない、文字コードがUTF-8固定になる・・・など簡単であるがゆえに物足りない所もありますが、単純な文字列を保存するだけならプリファレンスよりも簡単に使うことができます。
【詳細】
保存する
fileName : ファイル名
data : 保存する文字情報配列
dataは保存する文字列の配列です。保存したい文字情報の数だけ確保してください。
確保した配列の1要素が、1行として格納されます。これは Javaモードの saveStrings 命令と同じです。
ファイルは
/data/data/パッケージ名/files
(例:/data/data/com.example.mslabo.processingsample1/files)
配下に、指定したファイル名で保存されます。
Javaモードの時と同じで、ファイルは常に上書き更新される事に注意してください。
また上記パスはアプリケーションの固有領域になりますので、他のアプリケーションからは読み取ることができないファイルとなります。
fileName にパスを与える場合は、書き込み権限の有るパスを与えて下さい。
不正なパスを与えると指定したファイルが書き込まれないか、「java.lang.IllegalArgumentException: File xxxxxx contains a path separator」(xxxxは与えたファイルパス)例外になります。
/data/data/パッケージ名/files 配下にサブフォルダを生成してファイルを書き込みたい場合は、sketchPath( String path ) 命令を利用してパスを指定するのが便利です。
【関連記事】
サンプルプログラム
保存する例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import processing.core.PApplet; import processing.event.TouchEvent; /** * PROCESSING AndroidMode saveStrings Sample * @author MSLABO * @version 1.0 */ public class Sketch extends PApplet { final String SAVE_FILENAME = "MySaveFile.txt"; @Override public void settings() { fullScreen(); } @Override public void setup() { } @Override public void draw() { background(200); } /** * タッチスタートイベント * @param touchEvent */ @Override public void touchStarted(TouchEvent touchEvent) { //保存したいデータを配列に格納する String saveData[] = new String[4]; saveData[0] = "たこ"; saveData[1] = "いか"; saveData[2] = "えび"; saveData[3] = "いるか"; //data/data/パッケージ名/files/MyFolder/SAVE_FILENAME //に保存する saveStrings( sketchPath("MyFolder" ) + "/" + SAVE_FILENAME, saveData ); super.touchStarted(touchEvent); } } |
スクリーンをタッチされたら、saveData 配列の内容を保存します。
<出力サンプル>
AndroidStudioのデバッグツールで書き込まれたファイルを閲覧した様子です。
/data/data/パッケージ名/files/MyFolder/SAVE_FILENAME に、テキストデータが書き込まれているのがわかります。
本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。