Where Room save database Android? Where Room save database Android? database database

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();    }}