ファイルは「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 件のコメント:
コメントを投稿