Не удается записать на SD-карту - canWrite возвращает false

Извините за неоднозначное название, но я делаю следующее, чтобы записать простую строку в файл:

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

Ноroot.canWrite() кажется, возвращает ложь каждый раз. Я не запускаю это на эмуляторе, мой Android Eris подключен к моему компьютеру через USB и запускает приложение с моего телефона через Eclipse. Есть ли способ дать разрешение моему приложению, чтобы этого не произошло?

Кроме того, этот код, кажется, создать файлdefault.txt но что, если он уже существует, он проигнорирует создание и просто откроет его, чтобы написать, или я должен поймать что-то вродеFileAlreadyExists(если такое исключение существует), которое затем просто открывает его и пишет?

Спасибо за любую помощь, ребята.

Ответы на вопрос(2)

Ваш ответ на вопрос