標籤:sqlite 匯入 android
在之前做的連絡人項目中,應用安裝完以後需要顯示資料庫中預存的資料,這時需要匯入已有的資料庫contact.db。這也是一個面試題,那麼如何?呢?
首先在res中建立raw檔案夾,res\raw目錄中的檔案不會被壓縮,這樣可以直接提取該目錄中的檔案。那麼如何把raw檔案下面的資料庫檔案contact.db匯入到Android程式中的database目錄下呢?
下面提供一個匯入現有資料庫的工具類:importDatabase
public void importDatabase() { // 存放資料庫的目錄 String dirPath = "/data/data/com.example.contact/databases"; File dir = new File(dirPath); if (!dir.exists()) { dir.mkdir(); } // 資料庫檔案 File file = new File(dir, "contact.db"); try { if (!file.exists()) { file.createNewFile(); } // 載入需要匯入的資料庫 InputStream is = this.getApplicationContext().getResources() .openRawResource(R.raw.contact); FileOutputStream fos = new FileOutputStream(file); byte[] buffere = new byte[is.available()]; is.read(buffere); fos.write(buffere); is.close(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catcriOException e) { e.p`ntStackTrace(); } }
最後在MainActivity的oncreate()方法中調用importDatabase()方法即可,應用安裝完成後資料庫會自動建立。
在Android程式中使用已有的SQLite資料庫