0

我编写了一个应用程序,它记录数据并通过 SQL 将其保存到 .db 文件中。我有一种方法将其从内部存储器复制到 SD 卡。

现在我编写了第二个应用程序,它需要使用这个特定的 .db 文件。我认为,该应用程序无法从其他应用程序访问包文件

(在这种情况下

 /data/data/app1_package/databases/my_database.db 

) 我需要以某种方式在 SD 卡上使用我的数据库。我怎么做?

我可以在我的 SQLiteHelper 类中使用这个路径吗?我应该将它从 SD 复制到我的包中,这是否可能(访问权限等)?

我是数据库的初学者,一些帮助会很好。

4

2 回答 2

1

您可以将任何可读文件路径作为数据库打开:

File dbFile = new File( Environment.getExternalStorageDirectory(), "myfile.db" );
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbFile,null,null);

注意:在使用此代码之前,请检查是否安装了 sd 卡。

于 2013-07-02T14:12:35.617 回答
0

是的,将数据库文件放在您的资产文件夹中并以这种方式获取它:

     DB_PATH="/data/data/app1_package/databases/my_database.db" 

在您的创建中:

            is = getAssets().open("Meaniningss.db");
            write(is);

方法 :

               public void write(InputStream is) {
    try {
        OutputStream out = new FileOutputStream(new File(DB_PATH));
        int read = 0;
        byte[] bytes = new byte[1024];

        while ((read = is.read(bytes)) != -1) {
            out.write(bytes, 0, read);
        }
        is.close();
        out.flush();
        out.close();
        System.err.println(out + "\n");
    } catch (IOException e) {
        e.printStackTrace();
    }
}
于 2013-07-02T14:01:42.363 回答