Cannot write to SD card -- canWrite is returning false
        Posted  
        
            by Fizz
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Fizz
        
        
        
        Published on 2010-04-12T16:09:28Z
        Indexed on 
            2010/04/12
            16:13 UTC
        
        
        Read the original article
        Hit count: 354
        
Sorry for the ambiguous title but I'm doing the following to write a simple string to a file:
try {
        File root = Environment.getExternalStorageDirectory();
        if (root.canWrite()){
            System.out.println("Can write.");
            File def_file = new File(root, "default.txt");
            FileWriter fw = new FileWriter(def_file);
            BufferedWriter out = new BufferedWriter(fw);
            String defbuf = "default";
            out.write(defbuf);
            out.flush();
            out.close();
        }
        else
            System.out.println("Can't write.");
}catch (IOException e) {
        e.printStackTrace();
}
But root.canWrite() seems to be returning false everytime. I am not running this off of an emulator, I have my android Eris plugged into my computer via USB and running the app off of my phone via Eclipse. Is there a way of giving my app permission so this doesn't happen?
Also, this code seems to be create the file default.txt but what if it already exists, will it ignore the creation and just open it to write or do I have to catch something like FileAlreadyExists(if such an exception exists) which then just opens it and writes?
Thanks for any help guys.
© Stack Overflow or respective owner