Мое приложение записывает на внешнюю SD-карту с помощью адаптера Samsung для вкладки галактики. Когда устройство USB «безопасно удалено», файлы все в порядке, однако, когда устройство удалено небезопасно, все вновь записанные файлы равны 0 байтам.0Byte файлы на внешнем USB-устройстве при неправильной размонтировке на Android Galaxy Tab 10.1
Вот урезанная версия коды:
String json = "{some data to export}";
String folderPath = Environment.getExternalStorageDirectory().toString() + File.separator + "Storages" + File.separator + "usb" + File.separator + "sda";
File outputFile = new File(folderPath, "export.txt");
FileWriter writer = new FileWriter(outputFile);
BufferedWriter out = new BufferedWriter(writer);
out.write(json);
out.flush();
out.close();
Как вы можете видеть, я промывку и закрытие файла, однако он смотрит на меня, как Android на самом деле не потрудившись очистить содержимое перед тем USB отключен.
Очевидным решением является рассказать пользователям безопасно размонтировать пользователей, однако мы все знаем, что такое пользователи. Итак, есть способ заставить Android программно очистить содержимое файлов на SD-карте? (В дополнение к BufferedWriter.flush/BufferedWriter.close)
Устройство является Samsung Galaxy Tab 10,1 GT-P7510 работает Android 3.1
'out.flush()' излишне, поскольку 'out.close()' также удаляет буфер перед закрытием 'Writer'. Ничего не повредит, это просто не нужно. – Chilledrat