実機で実行している場合、「マウント」をOFFします。
(SDカードに書き込みできず、マウントOFFに気づくのに小一時間゜・(ノД`)・゜・)
マニフェストファイルにSD カードのコンテンツの変更/削除の権限を与える設定を行います。
※SDカードから読み込むだけなら必要ありません。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
SDカードは端末によりパスが異なるのでgetExternalStorageDirectory()メソッドでパスを取得します。
String sdPath = Environment.getExternalStorageDirectory().getPath();
あとは普通のファイル入出力と同じです。
SDカードに書き込み
public void button1Click(View view) {
try {
//SDカードフォルダのパス
String sdPath = Environment.getExternalStorageDirectory().getPath();
//作成するファイル名
String fileName = "/Hello.txt";
//書き込み
BufferedWriter bw = null;
try {
FileWriter fw = new FileWriter(sdPath + fileName);
bw = new BufferedWriter(fw);
bw.write("ハロー");
} finally {
bw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
SDカードに書き込み
public void button2Click(View view) {
try {
//SDカードフォルダのパス
String sdPath = Environment.getExternalStorageDirectory().getPath();
//読み込むァイル名
String fileName = "/Hello.txt";
//読み込み
BufferedReader br = null;
try {
FileReader fr = new FileReader(sdPath + fileName);
br = new BufferedReader(fr);
StringBuilder sb = new StringBuilder();
String str;
while((str = br.readLine()) != null){
sb.append(str +"\r\n");
}
Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show();
} finally {
br.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
0 件のコメント:
コメントを投稿