
Androidでローカルファイルにデータを保存するサンプル#tryLocalFile00


ローカルファイルを使ってデータを保存する。
Preferenceを使うと小さなデータは保存できるけど、何か大きなデータ(例えば1日ごとに何かを保存したい)とかそういう使い方は難しいらしい。
ファイルを開くときにopenFileOutputで
MODE_APPEND:追記モードで開きます。
MODE_PRIVATE:ローカルファイルを作ったAndroidアプリだけアクセスできる様にする
MODE_WORLD_READABLE:他アプリから読み取りできる様にする。
MODE_WORLD_WRITEABLE:他アプリから書込みできる様にする。
を指定することができる。
deleteFileを使ってファイルを消す
●検索した事
SharedPreferences
android ローカルファイル 削除
●開発環境
Eclipse IDE バージョン: 3.7 Indigo Service Release 2
ターゲットプラットフォーム: 2.1
API レベル: 7
package junkcode.sample.trylocalfile00; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.EditText; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { // ファイル名はパスなすで指定する。パスはOSが勝手にアプリごとに勝手に決めてくるので指定することはできない。 private static final String FILE_NAME = "trylocalfile00.txt"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 保存されたデータの最初の読み込み this.readText(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } // //////////////////////////////////////////////////////////// // 書き込みが押されたときに呼ばれる public void onClick_buttonWrite(View view) { // 入力されたモノを取り出す EditText editText = (EditText)this.findViewById(R.id.editText_input); String text = editText.getText().toString().trim(); // 何か値が入ってるときは書き込む if (0 < text.length()) { this.writeText(text); // 内容を再読込する this.readText(); // EditTextにはいってる内容を消す editText.setText(""); } } // //////////////////////////////////////////////////////////// // 削除が押されたときに呼ばれる public void onClick_buttonDeleteLocalFile(View view) { // ローカルファイルを消す this.deleteFile(FILE_NAME); // 表示用のEditTextを取り出す EditText editText = (EditText)this.findViewById(R.id.editText_localfile); editText.setText(""); } // //////////////////////////////////////////////////////////// // ファイルに書き込む public void writeText(String text) { try { OutputStream out = this.openFileOutput(FILE_NAME, MODE_PRIVATE | MODE_APPEND); PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, "UTF-8")); // ファイルに書き込む writer.append(text); writer.close(); } catch (IOException e) { e.printStackTrace(); } } // //////////////////////////////////////////////////////////// // ファイルから読み込む public void readText() { try { InputStream is = this.openFileInput(FILE_NAME); BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); String res = ""; // 表示用のEditTextを取り出す EditText editText = (EditText)this.findViewById(R.id.editText_localfile); editText.setText(""); // 1行ずつ読み込む res = reader.readLine(); while(res != null) { // これで追加書き込みできるんだって! editText.append(res); // また1行読み込む res = reader.readLine(); } } catch (IOException e) { e.printStackTrace(); } } }
AndroidのOpenGLでCOLLADA(dae)ファイルを読み込んで表示するサンプル#try... AndroidでXMLの保存/読み込み/追加書き込みサンプル#tryXml00