gpt4 book ai didi

android - 获取 Assets 文件夹中的 SQLite 路径

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:23 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我在这里遇到了两个问题:

  1. 如何打开存储在 Assets 文件夹中的 SQLite 数据库?我使用什么路径来访问我的应用程序中的 Assets 文件夹?这是我到目前为止所拥有的:

    path = "file:///asset_folder/database.dat";
    SQLiteDatabase db = null;
    db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);
  2. 如何在安装我的应用程序或首次运行期间将文件复制到内部存储器 (/data/data/...)?我想在第一次运行时将assets文件夹中的一个文件夹复制到内存中。

如有任何建议,我们将不胜感激。

最佳答案

我遇到了同样的问题,所以我将 db 文件移动到 res/raw 文件夹,然后像这样访问它:

InputStream inputStream = getBaseContext().getResources().openRawResource(R.raw.mySQLiteFile);

然后我尝试将文件移动到/data/data/com.mydomain.www/databases/文件夹中,但我会得到一个异常,因为目标路径不存在,所以我做了 File( destPath).getParentFile().mkdir();

从那里,我调用了一个复制数据库的方法来将数据库传输到目的地。

public void CopyDB(InputStream inputStream, OutputStream outputStream) throws IOException {
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
}

InputStream是db文件,OutputStream是FileOutputStream(destPath)。

关于android - 获取 Assets 文件夹中的 SQLite 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com