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