У нас возникает большая проблема при сохранении файла во внутреннюю память (в приложение). папка). Например, мы сохранили файл, и независимо от того, произойдет ли отключение питания через несколько секунд или даже через полчаса, последний сохраненный файл имеет размер 0 байт.
На данный момент мы с этим справились. сохранив фиктивный файл последним, потому что мы думали, что даже если он будет уничтожен, ничего страшного не произойдет и с конкретным файлом все будет в порядке. Кроме того, мы добавили процесс чтения файла в функцию сохранения.
Частота появления проблем была уменьшена, но иногда конкретный файл также пуст после аппаратного отключения питания.
Вот фрагмент функции сохранения:
Код: Выделить всё
File task_dummy = new File(file_folder, "dummy_task.dmt");
String file = generate_task_JSON_file(task);
if (file != null){
if(task_data.exists())
task_data.delete();
task_data.createNewFile();
if(task_dummy.exists())
task_dummy.delete();
task_dummy.createNewFile();
FileOutputStream fos = new FileOutputStream(task_data.getPath());
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(file);
oos.close();
fos.close();
oos.flush();
fos.flush();
fos = new FileOutputStream(task_dummy.getPath());
oos = new ObjectOutputStream(fos);
oos.writeObject(file);
oos.close();
fos.close();
oos.flush();
fos.flush();
try{
FileInputStream fin = new FileInputStream(task_data);
ObjectInputStream ois = new ObjectInputStream(fin);
String file_string = ois.readObject().toString();
ois.close();
fin.close();
} catch (ClassNotFoundException e) {
}
}
Большое спасибо.
Лукаш
Подробнее здесь: https://stackoverflow.com/questions/790 ... -power-off
Мобильная версия