如何將SQLite資料庫(dictionary.db檔案)與apk檔案一起發布

來源:互聯網
上載者:User

標籤:android   style   blog   io   ar   color   os   使用   sp   

 

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

如何將SQLite資料庫(dictionary.db檔案)與apk檔案一起發布

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.