Zero
Zero

Reputation: 1904

No such file or directory when trying to save file

For an App I am developing, I want to write some text to a text file on the SD card. I've tried to do that with the code below. This gives an error but I can't see why. As far as I can tell I have followed all the examples on the web perfectly. In logcat I see the first log, but not the second one so the problem is in the creation of the file. Do you guys have an idea what's going wrong?

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();
    }

}

EDIT:

Turns out I had forgotten to add the right permission to the manifest. It works now!

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Upvotes: 2

Views: 1584

Answers (1)

Mushtaq Jameel
Mushtaq Jameel

Reputation: 7083

Did you declare the proper uses permissions to access and write to the External SD card ?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Upvotes: 2

Related Questions