サンプルプログラム工場

AAKAKA Appで使われているプログラムのサンプルコードをそのまま公開!

サンプルプログラム工場 > android > Androidでローカルファイルにデータを保存するサンプル#tryLocalFile00
Google Play AAKAKAxSOFTへ

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

実行ファイル(APK)やサンプル(zip)をダウンロードする
tryLocalFile00の実行イメージ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();
		}
    }
}

APKファイルをダウンロード サンプルプロジェクトをダウンロード

, , , , , , , , , ,

AndroidのOpenGLでCOLLADA(dae)ファイルを読み込んで表示するサンプル#try... AndroidでXMLの保存/読み込み/追加書き込みサンプル#tryXml00

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>