如何读取android asserts下面已经存在的sqlite数据库

 我来答
百度网友5811609
2016-01-10 · TA获得超过144个赞
知道答主
回答量:217
采纳率:0%
帮助的人:48.3万
展开全部

这个可以在每次应用开启时检测database文件夹下是否有这个名称的数据库,如果没有就从asserts中获得释放一次,给你看一下我的代码:

我的asserts里有一个文件叫做:address.db

/**
*在onCreate()方法中调用
*/
private File initDatabase (){
        BufferedInputStream     bis = null;
        BufferedOutputStream    bos = null;
        File                    file = getDatabasePath("address.db");
        byte []                 buffer = new byte[1024];
        int                     c;

        try {
            if (!file.exists())
                file.getParentFile().mkdirs();
            else
                return file;
            bis = new BufferedInputStream(getAssets().open("address.db"));
            bos = new BufferedOutputStream(new FileOutputStream(file));

            while ((c = bis.read(buffer)) != -1)
                bos.write(buffer, 0, c);

        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }finally{
            try {
                if (bis != null)
                    bis.close();
                if (bos != null) {
                    bos.close();
                    bos.flush();
                }
            }catch (IOException e){
                e.printStackTrace();
            }
        }
        return file;
    }
QQMSD8
2018-08-02 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
assets的读取方式:
1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
4.调用AssetManager.close() 关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-12-15
展开全部
必须要在代码中建一个数据库,才可以访问,不然你直接放进去的数据库是访问不了的。
建好了数据库之后,你可以从手机中导出到电脑,再作修改后导入到手机,这样手机就可以访问了。希望能帮到你,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式