Извините за неоднозначный заголовок, но я делаю следующее для записи простой строки в файл:
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()
кажется, возвращает false каждый раз. Я не выполняю это прочь эмулятора, мне включили мой android Eris мой компьютер через USB и запущение приложения прочь моего телефона через Eclipse. Существует ли способ дать мое разрешение приложения, таким образом, этого не происходит?
Кроме того, этот код, кажется, создают файл default.txt
но что, если это уже существует, будет он проигнорировать создание и просто открыть его для записи, или сделать я должен поймать что-то как FileAlreadyExists
(если такое исключение существует), который затем просто открывает его и записи?
Спасибо за любых парней справки.
Есть ли способ предоставить моему приложению разрешение, чтобы этого не произошло?
Вам понадобится WRITE_EXTERNAL_STORAGE
разрешение.
Вам также необходимо, чтобы SD-карта не была установлена на вашем компьютере для разработки - компьютер или телефон могут получить доступ к SD-карте, но не оба одновременно.