ファイルは「data/data/<パッケージ名>/files/」に作成され、このフォルダのファイルを読み込めます。
書き込みには出力用ストリーム(OutputStream)のインスタンスを、openFileOutput()メソッドで取得します。
OutputStream openFileOutput(String fileName, int mode)引数
fileName:ファイル名を指定します。ファイルパスは含めません。
mode:操作モードを指定します。
MODE_APPEND 既存ファイルの最後に追加書き込み
MODE_PRIVATE 他のアプリからはアクセス不可
MODE_WORLD_READABLE 他のアプリからの読み込み可能
MODE_WORLD_WRITABLE 他のアプリからの書き込み可能
読み込みには入力用ストリーム(InputStream)のインスタンスを、openFileInput()メソッドで取得します。
InputStream openFileInput(String fileName)引数
fileName:ファイル名を指定します。ファイルパスは含めません。
サンプルコード
MainActivity.java
package my.study.android; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { /* WriteボタンClickリスナー */ private OnClickListener buttonWrite_OnClickListener = new OnClickListener(){ public void onClick(View v) {buttonWrite_OnClick(v);}}; /* ReadボタンClickリスナー */ private OnClickListener buttonRead_OnClickListener = new OnClickListener(){ public void onClick(View v) {buttonRead_OnClick(v);}}; /* * onCreate */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //Writeボタン Button btnWrite = (Button)this.findViewById(R.id.btnWrite); btnWrite.setOnClickListener(buttonWrite_OnClickListener); //Readボタン Button btnRead = (Button)this.findViewById(R.id.btnRead); btnRead.setOnClickListener(buttonRead_OnClickListener); } /* * Writeボタン処理 */ private void buttonWrite_OnClick(View v){ String filename = "AndroidStudy.txt"; OutputStream os = null; BufferedWriter bw = null; try{ try { os = this.openFileOutput(filename, MODE_PRIVATE); bw = new BufferedWriter(new OutputStreamWriter(os)); bw.append("1行目" + "\n"); bw.append("2行目" + "\n"); bw.flush(); } finally { bw.close(); } } catch (IOException e) { Toast.makeText(this, "書き込み失敗", Toast.LENGTH_SHORT).show(); } } /* * ReadボタンClick処理 */ private void buttonRead_OnClick(View v){ String filename = "AndroidStudy.txt"; InputStream is = null; BufferedReader br = null; StringBuilder sb = new StringBuilder(); try{ try { is = this.openFileInput(filename); br = new BufferedReader(new InputStreamReader(is)); String str; while((str = br.readLine()) != null){ sb.append(str +"\n"); } } finally { br.close(); } } catch (IOException e) { Toast.makeText(this, "読み込み失敗", Toast.LENGTH_SHORT).show(); } TextView label = (TextView)this.findViewById(R.id.label); label.setText(sb.toString()); } }
main.xml(MainActivityのレイアウト)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/label"> </TextView> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Write" android:id="@+id/btnWrite"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Read" android:id="@+id/btnRead"> </Button> </LinearLayout>
0 件のコメント:
コメントを投稿