誰かがこのコードのスニペットを見て、私が間違っていることを教えてください。これは、ファイル名として使用するパラメーターとして文字列を受け取り、末尾に「.txt」を追加する単純な関数です。
この関数は、ファイルが存在するかどうかを確認し、存在しない場合はファイルを作成してから、2 行のテキストをファイルに書き込みます。すべてが機能しているように見え、SD カードにファイルが正常に作成されます。ただし、すべてが完了すると、ファイルは空になります (サイズは 0 バイトになります)。
私が見落としているのは明らかなことだと思います。
public void writeFile(String fileName) {
String myPath = new File(Environment.getExternalStorageDirectory(), "SubFolderName");
myPath.mkdirs();
File file = new File(myPath, fileName+".txt");
try {
if (!file.exists()) {
if (!file.createNewFile()) {
Toast.makeText(this, "Error Creating File", Toast.LENGTH_LONG).show();
return;
}
}
OutputStreamWriter writer = new OutputStreamWriter(openFileOutput(file.getName(), Context.MODE_PRIVATE));
writer.append("First line").append('\n');
writer.append("Second line").append('\n');
writer.close();
}
catch (IOException e) {
// Do whatever
}
}