Kann nicht auf SD-Karte schreiben - canWrite gibt false zurück

Sorry für den mehrdeutigen Titel, aber ich mache Folgendes, um eine einfache Zeichenfolge in eine Datei zu schreiben:

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

Aberroot.canWrite() scheint jedes Mal falsch zu sein. Ich habe mein Android Eris über USB an meinen Computer angeschlossen und die App über Eclipse von meinem Telefon aus gestartet. Gibt es eine Möglichkeit, meiner App die Erlaubnis zu geben, damit dies nicht passiert?

Auch dieser Code scheint die Datei zu erstellendefault.txt aber was ist, wenn es bereits existiert, wird es die Erstellung ignorieren und es einfach öffnen, um zu schreiben oder muss ich etwas wie @ fangFileAlreadyExists (falls eine solche Ausnahme existiert) welche öffnet sie dann einfach und schreibt?

ielen Dank für jede Hilfe Jungs.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage