- Android
- 2011-11-05 - 更新:2011-12-15
この記事は最終更新日から1年以上経過しています。
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(); } } }
3,891 views