Androidでテキストファイルに書き込もうとしています。私のコードは次のとおりです(サービスで実行):
File log; String state = Environment.getExternalStorageState();
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
log = new File(path, "log.csv");
System.out.println("Opening file");
} else {
System.err.println("Could not write to external storage medium. No log will be created");
return;
}
String line = "stuff";
if (!log.exists()) {
try {
log.createNewFile();
System.out.println("Creating new log file.");
} catch (IOException e) {
System.err.println("Could not create new log file");
e.printStackTrace();
return;
}
}
try {
path.mkdirs();
BufferedWriter bw = new BufferedWriter(new FileWriter(log, true));
bw.append(line);
System.out.println("Appending to log file.");
bw.newLine();
bw.flush();
bw.close();
} catch (IOException e) {
System.err.println("Failed to write to log file");
e.printStackTrace();
return;
}
AndroidManifest.xml に次の行を追加しました。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
これを実行すると、LogCat に次のように出力されます。
Opening file
Appending to log file.
しかし、目的のディレクトリを調べて検索を実行して、代わりに別の場所にあるかどうかを確認したにもかかわらず、電話のメモリに指定された名前のファイルが見つかりません。
何がうまくいかないのかわかりません。何か案は?ありがとう!