android - 导入外部的sqlite数据库,运行时报错打不开数据库.

 mobiledu2502870133 发布于 2022-10-31 23:02
private SQLiteDatabase openDatabase(String dbfile) {
    try {
        if (!(new File(dbfile).exists())) {
            //判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库
       File f = new File(DB_PATH);
            // 如 database 目录不存在,新建该目录
            if (!f.exists()) {
                f.mkdir();
            }
            try {
                InputStream is = this.context.getResources().openRawResource(
                        R.raw.onedic);
                // 输出流
                OutputStream os = new FileOutputStream(dbfile);
                // 文件写入
                byte[] buffer = new byte[1024];
                int length;
                while ((length = is.read(buffer)) > 0) {
                    os.write(buffer, 0, length);
                }
                // 关闭文件流
                os.flush();
                os.close();
                is.close();

        }catch (Exception e){
                e.printStackTrace();
            }
        }
            SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile,
                    null);
        return db;
    } catch (Exception e) {
        Log.e("Database", "File not found");
        e.printStackTrace();
    }
    return null;
}
这个是我把在assets文件下的数据库写入手机里面的部分代码
然后就报错:
![图片描述][1]

1 个回答
  • 为什么不直接读,而要先进行一下文件读写操作呢

    2022-10-31 23:36 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有