数据库
首页 > 数据库> > android – 获取Assets文件夹中的SQLite路径

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

作者:互联网

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

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

path = "file:///asset_folder/database.dat";
SQLiteDatabase db = null;
db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);

>如何在安装应用程序或首次运行期间将文件复制到内部存储器(/ data / data / …)?我想在首次运行期间将assets文件夹中的文件夹复制到内部存储器中.

任何建议将不胜感激.

解决方法:

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

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

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

从那里,我调用了一个复制db方法来将db传输到目标.

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,android,sqlite,android-sqlite
来源: https://codeday.me/bug/20190903/1795782.html