博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何将SQLite数据库(dictionary.db文件)与apk文件一起发布
阅读量:4116 次
发布时间:2019-05-25

本文共 1468 字,大约阅读时间需要 4 分钟。

可以将dictionary.db文件复制到Eclipse Android工程中的res\raw目录中,如图1所示。所有在res\raw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。

使用openDatabase方法来打开数据库文件,如果该文件不存在,系统会自动创建/sdcard/dictionary目录,并将res\raw目录中的 dictionary.db文件复制到/sdcard/dictionary目录中。openDatabase方法的实现代码如下:



代码 

    private SQLiteDatabase openDatabase()

    {

        try

        {

            // 获得dictionary.db文件的绝对路径

            String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;

            File dir = new File(DATABASE_PATH);

            // 如果/sdcard/dictionary目录中存在,创建这个目录

            if (!dir.exists())

                dir.mkdir();

            // 如果在/sdcard/dictionary目录中不存在

            // dictionary.db文件,则从res\raw目录中复制这个文件到

            // SD卡的目录(/sdcard/dictionary)

            if (!(new File(databaseFilename)).exists())

            {

                // 获得封装dictionary.db文件的InputStream对象

                InputStream is = getResources().openRawResource(R.raw.dictionary);

                FileOutputStream fos = new FileOutputStream(databaseFilename);

                byte[] buffer = new byte[8192];

                int count = 0;

                // 开始复制dictionary.db文件

                while ((count = is.read(buffer)) > 0)

                {

                    fos.write(buffer, 0, count);

                }


                fos.close();

                is.close();

            }

            // 打开/sdcard/dictionary目录中的dictionary.db文件

            SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(

                    databaseFilename, null);

            return database;

        }

        catch (Exception e)

        {

        }

        return null;

    }






     在openDatabase方法中使用了几个常量,这些常量是在程序的主类(Main)中定义的,代码如下:




代码 

public class Main extends Activity implements OnClickListener, TextWatcher

{

    private final String DATABASE_PATH = android.os.Environment

            .getExternalStorageDirectory().getAbsolutePath()

            + "/dictionary";

    private final String DATABASE_FILENAME = "dictionary.db";

}

转载地址:http://whwpi.baihongyu.com/

你可能感兴趣的文章
关于无线PCB中 中50欧姆的特性阻抗的注意事项
查看>>
Spring的单例模式源码小窥
查看>>
后台服务的变慢排查思路(轻量级应用服务器中测试)
查看>>
MySQL中InnoDB事务的默认隔离级别测试
查看>>
微服务的注册与发现
查看>>
bash: service: command not found
查看>>
linux Crontab 使用 --定时任务
查看>>
shell编程----目录操作(文件夹)
查看>>
机器学习-----K近邻算法
查看>>
HBASE安装和简单测试
查看>>
关于程序员的59条搞笑但却真实无比的编程语录
查看>>
tomcat 使用心得(问题)-eclipse 启动tomcat 后 浏览器访问404 --eclipse复制工程显示原来的工程名
查看>>
搞笑--一篇有趣的文章编译自一篇西班牙博客。有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
查看>>
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
查看>>
Tomcat启动错误,端口占用
查看>>
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>