私が開発しているアプリの場合、SD カードのテキスト ファイルにテキストを書き込みたいと考えています。以下のコードでそれをやろうとしました。これによりエラーが発生しますが、理由がわかりません。私が知る限り、私はウェブ上のすべての例を完全にフォローしています。logcat には最初のログが表示されますが、2 番目のログは表示されないため、ファイルの作成に問題があります。何が悪いのか分かりますか?
public void saveDataToFile(String data, String fileName) {
Log.d("Checks", "Trying to save data");
try {
// Set up the file directory
String filePath = Environment.getExternalStorageDirectory().toString() + "/Data Folder";
File fileDirectory = new File(filePath);
fileDirectory.mkdirs();
Log.d("Checks", "Directory created");
// Set up the file itself
File textFile = new File(fileDirectory, fileName);
textFile.createNewFile();
Log.d("Checks", "File created");
// Write to the file
FileOutputStream fileOutputStream = new FileOutputStream(textFile);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
outputStreamWriter.append(data);
outputStreamWriter.close();
fileOutputStream.close();
Toast.makeText(mContext, "Done writing to SD card", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(mContext, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
編集:
マニフェストに適切なアクセス許可を追加するのを忘れていたことがわかりました。それは今動作します!
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />