Я некоторое время исследовал эту проблему и нашел только действительно сложные ответы, поэтому я очень смущен. Имейте в виду, что я не опытный программист, поэтому не ждите, что я много знаю об этом!
Все, что я хочу сделать, это напечатать новую строку символов в текстовый файл, расположенный в папке загрузок на SD-карте в Android. Я настроил свой эмулятор на SD-карту и поместил текстовый файл в папку загрузок. Этот фрагмент кода предназначен для класса базы данных, который будет обращаться к текстовому файлу на SD-карте для чтения данных. Я знаю, что класс работает за пределами Android, поэтому предположим, что все методы работают так, как должны для чтения данных!
Я получаю исключение IOException, когда запускаю этот метод в другом классе:
public void addRecordToDataBase(ChildRecord c) throws IOException
{
FileWriter outFile = new FileWriter("/mnt/sdcard/download/database.txt");
PrintWriter out = new PrintWriter(outFile);
out.println(c.printToDataBase());
out.close();
}
Странно то, что я могу нормально читать из базы данных другими методами, использующими тот же путь; там нет проблем. Я просто не могу писать на него. Я где-то читал, что вы можете использовать «обычные методы Java» для записи на SD-карту в Android без этих сумасшедших вещей «OutputStream» повсюду. Это правда? Я отладил эту штуку и обнаружил, что строка кода, вызывающая исключение, находится прямо здесь:
FileWriter outFile = new FileWriter("/mnt/sdcard/download/database.txt");
Если кто-нибудь знает, почему я получаю это IOException, я был бы очень благодарен! Я пробовал все сумасшедшие методы, которые хочет использовать Android, но я думаю, что потерялся в них, поэтому я просто вернулся к тому, что знал, как делать.
Большое спасибо!