`
liangoogle
  • 浏览: 278491 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何将SQLite数据库(dictionary.db文件)与apk文件一起发布

阅读更多

可以将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";
}

分享到:
评论

相关推荐

    将db文件和apk一起打包

    本文讲解了如何将SQLite数据库(dictionary.db文件)与apk文件一起发布。这个过程可以将dictionary.db文件复制到Eclipse Android工程中的res\raw目录中,从而在apk文件中包含数据库文件。 知识点1:Android中的资源...

    批量读取EXCEL表格转换为SQLite的.db数据库文件

    功能:通过批量读取多个excel文件,将每个excel文件创建为sqlite数据库文件中的一个表格,最终形成包含这些excel文件内容的.db数据库文件。 用法:将压缩包内的.exe/.dll文件放在同一文件夹内,双击运行文件内的...

    SQLite数据库.rar

    能得找bug找了大半天,但是还是坚持的心态把问题给解决了,比如需要哪几个文件,需要sqlite3.dll、sqlite3.lib、sqlite3i.h、sqlite3.hDbsqlite.h、Dbsqlite.cpp这些都是已经封装好的,把这些文件发到工程的同一目录...

    Android实验报告Sqlite数据库操作.pdf

    Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 Android 平台的基本操作和数据库应用。 二、实验...

    sqlitedb sms.db

    标题中的"sqlitedb sms.db"表明我们关注的是一个SQLite数据库文件,具体为"sms.db",这个数据库可能被用于存储短信数据。SQLite是一个轻量级的、自包含的、无服务器的SQL数据库引擎,广泛应用于移动设备和嵌入式系统...

    安卓SQLite数据库相关-android读取本地.db文件实现不变数据本地化.rar

    本教程将围绕“安卓SQLite数据库相关-android读取本地.db文件实现不变数据本地化”这一主题,探讨如何在Android应用中读取和使用本地SQLite数据库文件,以实现数据的本地化存储。 首先,要在Android应用中使用...

    php读取SQLite数据库

    SQLite数据库文件(如`demo.db3`)通常是一个独立的文件,可以直接在文件系统中创建、打开和修改。这使得SQLite非常方便,因为它不需要单独的数据库服务器进程。 在PHP中,你可以使用PDO提供的各种方法进行更复杂的...

    SQLite.Interop.dll 配合SQLite Expert Professional 4.2可以打开加密数据库

    SQLite.Interop.dll 32和64位文件,配合SQLite Expert Professional 4.2可以打开加密数据库。 将SQLite.Interop.dll拷贝到SQLite Expert安装路径,然后打开SQLite Expert,Tools --> Options --> SQLite Library中...

    java读取本地.db文件实例

    在Java编程中,读取本地SQLite数据库(.db文件)是一项常见的任务,特别是在移动应用开发或者需要离线存储数据的场景下。SQLite是一种轻量级的、开源的关系型数据库,它不需要单独的服务器进程,可以直接在应用程序...

    SQLite.Interop.dll x32 x64

    SQLite.Interop.dll 文件是 SQLite 数据库引擎在 .NET 环境中的交互组件,它提供了与 SQLite 数据库进行通信和操作的接口。SQLite 是一个轻量级的、开源的、自包含的关系型数据库管理系统,广泛应用于桌面应用、移动...

    万年历数据库.db文件

    总结来说,"万年历数据库.db"是一个包含了广泛日历信息的SQLite数据库文件,它的结构和内容设计使得快速访问和处理大量日历数据成为可能。无论是开发日历应用还是提供相关服务,此类数据库都是不可或缺的基础资源。...

    SQLite数据库 sqlitedll库文件 sqlite驱动JAR包 sqlite工具

    这里的path为指定到SQLite数据库文件的路径,例如: jdbc:sqlite://dirA/dirB/dbfile jdbc:sqlite://DRIVE:/dirA/dirB/dbfile jdbc:sqlite://COMPUTERNAME/shareA/dirB/dbfile 三、下面是使用SQLite的两段代码以...

    SQLite.Interop.dll 支持sqlite expert professional 4.2密码录入

    SQLite.Interop.dll for sqlite expert professional 4.2 用与SQLite Expert打开本地已加密的数据库的插件。适用32位和64位。 1.直接将下载的文件复制到SQLite Expert安装路径(如:c:\Program Files (x86)\SQLite ...

    AndroidStudio查看SQLite数据库文件.zip

    4. 数据导入导出:可以将数据库文件导出为多种格式(如CSV、XML),或者导入其他数据库文件。 通过熟练掌握SqliteStudio的使用,开发者可以更好地调试和优化Android应用中的SQLite数据库,提升应用的数据处理效率。...

    SQLite.Interop.dll for sqlite expert professional 4.2

    SQLite.Interop.dll for sqlite expert professional 4.2 用与SQLite Expert打开本地已加密的数据库的插件。1.将SQLite.Interop.dll x86拷贝到SQLite Expert安装路径(如:x:\Program Files (x86)\SQLite Expert\...

    历史上的今天sqlite数据库historytoday.db

    历史上的今天sqlite数据库

    SQLite.Interop.dll

    总的来说,SQLite.Interop.dll在.NET开发中扮演着关键角色,确保其与应用程序和SQLite数据库文件的兼容性是解决连接问题的关键。在遇到“file not a database”的错误时,除了检查文件本身,还应考虑升级或替换DLL...

    sqlite3文件(sqlite3.dll,sqlite3.h,sqlite3.lib)

    这意味着你的可执行文件将包含SQLite3的功能,无需在运行时依赖`sqlite3.dll`。然而,静态链接可能导致生成的可执行文件较大。 SQLite3的主要特点包括: 1. **零配置**:无需安装,只需要拷贝相关库文件到项目目录...

    SQLite JDBC 驱动程序在Java中访问和创建SQLite数据库文件的库完整项目源代码.zip

    SQLite JDBC是一个用于在Java中访问和创建SQLite数据库文件的库。我们的SQLiteJDBC库不需要配置,因为主要操作系统的本机库,包括Windows,Mac...要使用其他目录,请将 org.sqlite.tmpdir JVM 属性设置为您喜欢的路径。

    最经典的.db文件查看器 SQLiteSpy最新版

    SQLiteSpy是一款广受欢迎的.db...而World.db3数据库文件则为我们提供了一个实践和学习SQLite数据库的实例。通过结合使用SQLiteSpy和提供的数据库文件,我们可以深入学习SQLite数据库的使用和管理,提升数据库技术能力。

Global site tag (gtag.js) - Google Analytics