Не удается записать на 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
(если такое исключение существует), которое затем просто открывает его и пишет?
Спасибо за любую помощь, ребята.