Shuhui.Li

生命不息,奋斗不止,万事起于忽微,量变引起质变 , 有木石心,具水云趣。...

在android项目里使用自带的SQLite数据库

最近在项目中需要在App中内置股票码表和公司名,实现在不联网状态下,第一是使用App也能搜索到公司名和码表信息,试了很多网上方法,困扰了一天,最后采取如下方法解决;使用android默认的访问sqlite的方法,访问的是:data/data/你的项目package/database/数据库名称 下的数据库,假如要在项目中打包db文件,该怎么弄呢?

有些时候我们的软件用到SQLite数据库,这个时候怎么把一个做好的数据库打包进我们的APK呢,其实很简单,就是把我们的数据库文件放到我们的手机里,所以不必局限在哪个地方写这个代码,在第一次创建数据库的时候可以,我觉得在软件起动页里效果更好一点,首先我们应该把事先写好的数据库文件比如
test.db放到res文件夹里的raw文件夹里,也可以放到assets里,因为这两个文件夹不会在生成APK的时候不会被压缩。

  /**
     * 外部数据库文件导入
     */
    private void writeFileDbToSqlite() {

        String DB_PATH = "/data/data/com.lsh.irr/databases/";
        String DB_NAME = "irr.db";

        File file = new File(DB_PATH);

        if (!file.exists()) {

            // 如 database 目录不存在,新建该目录
            if (!file.exists()) {

                file.mkdir();
            }

            try {
                // 得到 assets 目录下我们实现准备好的 SQLite 数据库作为输入流
                InputStream is = this.getAssets().open(DB_NAME);
                // 输出流
                OutputStream os = new FileOutputStream(DB_PATH + DB_NAME);

                // 文件写入
                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();
            }
        }
    }
 */ 初始化sqlite*/
    private void initSqlite() {

        writeFileDbToSqlite();
        .......
        }
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lsh869/article/details/51536985
文章标签: 数据库 sqlite
想对作者说点什么? 我来说一句

Android导入已有的SQLite数据库

2015年08月18日 3.46MB 下载

没有更多推荐了,返回首页

不良信息举报

在android项目里使用自带的SQLite数据库

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭