Это проблема, с которой я сталкивался во многих приложениях. Я хочу изменить информацию внутри файла, имеющего устаревшую версию. В этом случае я обновляю файл, в который записываются списки воспроизведения после добавления песни в список воспроизведения. (Для справки, я создаю приложение для android.)
Проблема в том, что я запускаю этот код:
FileOutputStream output = new FileOutputStream(file);
output.write(data.getBytes());
output.close();
И если возникает исключение IOException при попытке записи в файл, данные теряются (поскольку создание экземпляра FileOutputStream очищает файл). Есть ли лучший способ сделать это, чтобы при возникновении исключения IOException старые данные остались нетронутыми? Или эта ошибка возникает только тогда, когда файл доступен только для чтения, поэтому мне просто нужно проверить это?
Моя единственная «работа» - это сообщить пользователю об ошибке и дать указанному пользователю правильный данные, которые пользователь должен обновить вручную. Хотя это может сработать для разработчика, в этом случае может возникнуть множество проблем. Кроме того, в этом случае у пользователя нет разрешения на редактирование файла, поэтому "обходной путь" вообще не работает.
Извините, если кто-то еще спросил об этом. При поиске результата не нашел.
Заранее спасибо!