Я работаю на Android Studio, и я хотел бы записать / сохранить файл во внутренней памяти.Я знаю, что есть пара таких вопросов по переполнению стека.Мне удалось получить этот код от тех.
public static void writeObj(Alarm alarm, Context context){
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try{
fos = new FileOutputStream("ArrayList.txt", true);
oos = new ObjectOutputStream(fos);
oos.writeObject(alarm);
oos.flush();
oos.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Этот код не работал для меня.Мне удалось выяснить, что я получаю исключение FileNotFound, потому что FileOutputStream не может создать мой файл.Поэтому я сделал еще несколько копаний и добавил это выше к моему try / catch (заменив «ArrayList.txt» на f в FileOpenOutputStream).
File f = new File(context.getFilesDir(),"ArrayList.txt");
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Это создало для меня файл, что помогло мне преодолеть ловушку исключения FileNotFound, но теперь я получаю IOException.Я не смог найти решение этой проблемы.Может ли кто-нибудь дать мне несколько советов относительно причины, по которой я получу это исключение.Возможно, мне нужно добавить какое-то разрешение в файл манифеста, о котором я не знаю?