您的位置:首页 > 其它

Assets资源文件存储问题

2015-12-02 16:40 423 查看
今天调试遇到一个问题,将assets下的db数据库文件安装后,在data/data/package/databases下面只有该db文件,但是文件内容为空。

原因是:data/data/package/databases下的文件只是一个映射。当android需要自带数据时,我们一般习惯放在data/data/package/databases下,这是因为android程序文件中的数据库文件都默认存放在data/data/package/databases目录下。

当我们需要把数据库文件存放在内存卡中,就要在asset中放置一个db库文件 ,每次安装的时候要把这个asset库中的数据写入到内存下的库文件中。

File file = getDatabasePath("a.db");

if (!file.exists()) {

file.getParentFile().mkdirs();

try {

InputStream is = getAssets().open("a.db");

//InputStream is = getApplicationContext().getResources().openRawResource(R.raw.smdd);

FileOutputStream fos = new FileOutputStream(file);

byte[] buffer = new byte[1024];

int count = 0;

while ((count=is.read(buffer))!=-1) {

fos.write(buffer,0,count);

}

fos.close();

is.close();

} catch (Exception e) {

e.printStackTrace();

}

}

存放在assets下,可以允许你直接通过assets文件夹下的数据库名称来获取SQLiteDatabase对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: