Android開発 虎の巻

ファイル

■openFileOutputによる保存

/data/data/(パッケージ名)/files の中に保存

try{
	FileOutputStream file = openFileOutput("sample.txt", MODE_PRIVATE);
	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(file));
	String text="テストです\nどうでしょうか?\n";
	bw.write(text);
	bw.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
openFileOutput の第二引数
MODE_PRIVATE自アプリのみ使用可能
MODE_APPEND追記
MODE_WORLD_READABLE他アプリからも読み込み可能
MODE_WORLD_WRITEABLE他アプリからも書き込み可能

■openFileInputによる読み込み

try{
	FileInputStream in=openFileInput("sample.txt");
	BufferedReader br = new BufferedReader(new InputStreamReader(in));
	
	StringBuilder sb = new StringBuilder();
	String buff;
	while((buff = br.readLine())!=null){
		sb.append(buff+"\n");
	}
	br.close();
       
	TextView tv=(TextView)findViewById(R.id.textView1);
	tv.setText(sb.toString());		
} catch (FileNotFoundException e) {
} catch (IOException e) {
}

■SDカードの状態確認

	String status = Environment.getExternalStorageState();

	if(status.equals(Environment.MEDIA_MOUNTED)){
		Toast.makeText(this, "SDあり", Toast.LENGTH_SHORT).show();
	}else{
		Toast.makeText(this, "SDなし", Toast.LENGTH_SHORT).show();
	}

■SDカードへの保存

	String path = Environment.getExternalStorageDirectory().getPath();
	String fname = path + "/test.txt";
					
	try {
		BufferedWriter bw = new BufferedWriter(new FileWriter(fname));
		bw.write("SDカードテスト");
		bw.close();
	} catch (FileNotFoundException e) {
	} catch (IOException e) {
	}

AndroidManifest.xml にパーミッション「WRITE_EXTERNAL_STORAGE」を追加

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

■SDカードからの読み込み

	String path = Environment.getExternalStorageDirectory().getPath();
	String fname = path + "/test.txt";
				
	try {
		BufferedReader br = new BufferedReader(new FileReader(fname));
		String line;
		StringBuilder sb = new StringBuilder();
		while ((line = br.readLine()) != null) {
			sb.append(line);
		}
		br.close();
		
		
		EditText ed=(EditText)findViewById(R.id.editText1);
		ed.setText(sb);		
		
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
Android開発 虎の巻