Я пытаюсь сохранить ArrayList объектов на внешнем хранилище, но я получаю сообщение:Запись ArrayList объектов на внешнее устройство хранения
java.io.FileNotFoundException:/хранение/1917-121E/Документы/chem/bazaChem.dat: open failed: ENOENT (Нет такого файла или каталога).
У меня есть разрешение в файле манифеста. Вот мой код:
public void saveToSD(ArrayList<Chemical> bazaChem)
{
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)+"/chem";
try {
File dir = new File(path);
if(!dir.exists())
{
dir.mkdir();
}
OutputStream fos = null;
ObjectOutputStream oos = null;
File plik = new File(path, "bazaChem.dat");
fos = new FileOutputStream(plik);
oos = new ObjectOutputStream(fos);
oos.writeObject(bazaChem);
oos.close();
Toast.makeText(AddDataPanel.this, "Zapisałem bazę na karcie SD!!!", Toast.LENGTH_LONG).show();
} catch(Exception ex) {
ex.printStackTrace();
System.out.println(ex.getMessage());
Toast.makeText(AddDataPanel.this, "Wyjątek!!!", Toast.LENGTH_LONG).show();
}
}
}
Любая идея, в чем проблема?
Какова ваша 'targetSdkVersion' и какая версия Android вы тестируете? – CommonsWare