Where Room save database Android?
static final String DATABASE_NAME = "photex_db";
Here, you are trying to open photoex_db
.
String currentDBPath=getDatabasePath("photex_db.db").getAbsolutePath();
Here, you are trying to read from photex_db.db
.
These are not the same.
You might consider using DATABASE_NAME
consistently, rather than only in some places.
in Android Studio there is a section called "Device File Explorer", at the bottom right. In this section you can explore all the files(which you can not see in a simple file explorer app because you need to run the root).
Make sure the emulator is the one you're working with.In this explorer you have to go to "data" -> "data", look for the package name of your app and the next step is to find "database" entry, in this folder there is your Room database.
There was a little mistake in my code ,after correcting its working fine
private void copyFile() { try { File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); if (sd.canWrite()) { String currentDBPath = getDatabasePath("photex_db").getAbsolutePath(); String backupDBPath = "photex_db.db"; //previous wrong code // **File currentDB = new File(data,currentDBPath);** // correct code File currentDB = new File(currentDBPath); File backupDB = new File(sd, backupDBPath); if (currentDB.exists()) { FileChannel src = new FileInputStream(currentDB).getChannel(); FileChannel dst = new FileOutputStream(backupDB).getChannel(); dst.transferFrom(src, 0, src.size()); src.close(); dst.close(); } } } catch (Exception e) { e.printStackTrace(); }}