Я пытаюсь восстановить базу данных из памяти телефона, чтобы использовать ее в своем приложении.
Я успешно сделал резервную копию своей базы данных во внутреннем хранилище, но когда я пытаюсь восстановить ее, появляется следующее исключение io.exception
java.io.IOException: открыть не удалось: ENOENT (нет такого файла или каталога)
Как я могу решить эту проблему?
Тем не менее, я попробовал следующие решения, но они не работали
Android - java.io.FileNotFoundException ,
Возможно ли сделать резервную копию и восстановить файл базы данных в Android? некорневые устройства ,
Восстановление файла БД SQLite
private void restoreDatabase(Context context) {
String packagename = getPackageName();
File sdcard = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
try {
if (sdcard.canWrite()) {
String currentDBPath = "//data/"+getPackageName() +"/databases/" + DATABASE_NAME;
String backupDBPath = DATABASE_NAME;
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sdcard, backupDBPath);
currentDB.createNewFile();
if (currentDB.exists()) {
FileChannel src = new FileInputStream(backupDB).getChannel();
FileChannel dst = new FileOutputStream(currentDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(getApplicationContext(), "Database Restored successfully", Toast.LENGTH_SHORT).show();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show();
}
}
Пожалуйста, не отмечайте этот вопрос как дубликат