Sunday, 8 September 2013

I can create file but can't write to it

I can create file but can't write to it

Could someone look at this snippet of code please and let me know what I'm
doing wrong? It's a simple function that takes a string as parameter which
it uses as a file name, adding ".txt" to the end of it.
The function checks if the file exists, creating it if it doesn't and then
writes two lines of text to the file. Everything appears to be working and
the file is created successfully on the sd card. However, after everything
is done, the file is empty (and has a size of 0 bytes).
I suspect it's something obvious that I'm overlooking.
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
}
}

No comments:

Post a Comment