如何使用.db扩展名保存SQLite数据库?

时间:2014-03-31 22:21:29

标签: android sqlite file-management

超级初学者。

我已经创建了一个SQLite数据库,我想用SQLiteManager插件查看它,但是我的数据库没有在我的(虚拟)设备上添加.db扩展名。到目前为止,我不得不将文件复制到我的计算机,更改扩展名,然后将其推回,以便启用SQLiteManager图标。然后我可以看到数据库。

如何避免这种乱跑?

另外,有人提到我不应该依赖“/ data / data /”作为正确的路径。他们建议我使用Context.openOrCreateDatabase或其中一种get*Pathget*Dir方法。有人可以详细说明这些吗?我使用的代码来自我看到的Youtube教程。

以下是定义路径的代码:

try {
        String destPath = "/data/data/" + getPackageName() + "/databases/GradesDB.db";
        File f = new File(destPath);
        if(!f.exists()) {
            CopyDB( getBaseContext().getAssets().open("mydb"),
                new FileOutputStream(destPath));
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

4 个答案:

答案 0 :(得分:3)

你不应该依赖"数据/数据"因为它可能会改变,或者它可能在某些设备上不起作用,getDatabasePath (String name)将始终返回正确的路径,文档说

  

返回使用openOrCreateDatabase创建数据库的文件系统的绝对路径

答案 1 :(得分:1)

这不是在android上使用数据库的正确方法 使用本指南创建dbhelper

guide

然后你可以随心所欲地创建db文件名

答案 2 :(得分:1)

我知道已经晚了

首先使用此依赖项

    compile 'com.ajts.androidmads.sqliteimpex:library:1.0.0'

并使用此代码导出数据库

public static boolean exportDb(Context context, String databaseName) {

        File dbDir = new File(Environment.getExternalStorageDirectory(),"your_path");
        if (!dbDir.exists())
        {
            dbDir.mkdirs();
        }

        SQLiteImporterExporter sqLiteImporterExporter = new SQLiteImporterExporter(context, databaseName);
        try {
            sqLiteImporterExporter.exportDataBase(Environment.getExternalStorageDirectory()+"your_path");
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return true;

    }

答案 3 :(得分:0)

我同意I1nuxuser。这是另一个参考:https://github.com/jgilfelt/android-sqlite-asset-helper