Categories
SugiBlog ホームページ制作・システム開発

ファイル入出力 [Android]

Androidでは、アプリケーション毎に専用のディレクトリが設けられています。
アプリケーション毎に「/data/data/パッケージ名」となっていて、
更にそれ以下に以下のように領域が分かれています。

databases データベースの保存
shared_prefs 設定ファイルの保存
files ファイルの保存

今回はファイルの入出力なので、「files」ディレクトリを利用します。
アクセスする際はファイルまでのパスは不要です。


例)簡単なファイル入出力

package android.sample.MyFileAccess;

import java.io.*;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class HelloFileAccessActivity extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // ファイルアクセスデレクトリの表示 /data/data/packagename/files
    File fileDir = getFilesDir();
    Toast.makeText(this, String.format("ファイルアクセスデレクトリは「%s」です。",
      fileDir.getPath()), Toast.LENGTH_LONG).show();

    //writeFile("test.txt");
    readFile("test.txt");
  }

  private void writeFile(String FILE_NAME){
    // openFileOutputメソッドの例
    // Editテキストに入力されたテキストをファイルに書き込む
    try {
      FileOutputStream outputStream = openFileOutput(FILE_NAME, MODE_PRIVATE);
      BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(outputStream));
      writer.write("write file testing");
      writer.close();
    } catch (Exception e) {
      Toast.makeText(getApplicationContext(),
        "ファイルの書込みに失敗しました。\n" + e.getMessage(),
        Toast.LENGTH_LONG).show();
    }

  }

  private void readFile(String FILE_NAME){

    // openFileInputメソッドの例
    // ファイルを読込みTextViewに表示する
    try {
      FileInputStream inputStream = openFileInput(FILE_NAME);
      BufferedReader reader = new BufferedReader(
        new InputStreamReader(inputStream));
      String line;
      StringBuilder lines = new StringBuilder();
      while ((line = reader.readLine()) != null) {
        lines.append(line).append('\n');
      }
      reader.close();

      //tv.setText(lines);
      Toast.makeText(this, lines, Toast.LENGTH_LONG).show();
    } catch (IOException e) {
      Toast.makeText(getApplicationContext(),
        "ファイルの読込みに失敗しました。\n" + e.getMessage(),
        Toast.LENGTH_LONG).show();
    }

  }

}
1,774 views

コメントを残す

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

*