libro
www.tuyano.com
Google androidプログラミング入門

ファイルアクセスに挑戦! (3/7)

作成:2009-12-28 11:02
更新:2010-05-11 13:44

■ソースコードを書こう

では、Javaのソースコードを完成させましょう。SampleApp.javaを以下のリストのように修正してください。これでプログラムは完成です。

プログラムを起動すると、入力フィールドに2つのボタンのある画面が現れます。適当にテキストを記述してから「書き出し」ボタンを押すと、テキストが保管されます。書いたテキストを消去するなどしてから「読み込み」ボタンを押してみましょう。先ほど保存したテキストが再び現れます。ここでは、用意する配列の関係で1000バイトまでのテキストが保管可能です。

また、保存されるデータは、プログラムのパッケージ内とは別の場所に記録されますので、エミュレータを終了し、再度実行したり、再度プログラムがエミュレータにインストールされたりしてもデータは保持されています。一度エミュレータを終了し、再起動してから、前回保存したテキストが読み込めるか確かめてみるとよいでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package jp.tuyano;


import java.io.*;


import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;

public class SampleApp extends Activity {
    private Activity me;
    private EditText edit;
    
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        edit = (EditText)this.findViewById(R.id.edit);
        Button load = (Button)this.findViewById(R.id.load);
        load.setOnClickListener(new MyLoadAdapter());
        Button save = (Button)this.findViewById(R.id.save);
        save.setOnClickListener(new MySaveAdapter());
    }
    
    // イベントクラス
    class MyLoadAdapter implements OnClickListener {


        @Override
        public void onClick(View v) {
            try {
                loadText();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    // イベントクラス
    class MySaveAdapter implements OnClickListener {


        @Override
        public void onClick(View v) {
            Editable s = edit.getText();
            try {
                saveText(s.toString());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    // テキストの保存
    public void saveText(String data) throws IOException{
        String path = "data.txt";
        FileOutputStream output = this.openFileOutput(path, Context.MODE_WORLD_READABLE);
        output.write(data.getBytes());
        output.close();
    }
    // テキストの読込
    public void loadText() throws IOException{
        String path = "data.txt";
        FileInputStream input = this.openFileInput(path);
        byte[] buffer = new byte[1000];
        input.read(buffer);
        String s = new String(buffer).trim();
        edit.setText(s);
        input.close();
    }
}

※関連コンテンツ

「Google androidプログラミング入門」に戻る