0

我有一个应用程序,我正在更新我的 SQLite db 文件,但是每次当用户卸载这个应用程序时,这个 db 文件都会被删除,并且在重新安装时会创建一个新的 db 文件。我想在每次更新后将此数据库文件复制到微型 SD 卡,以便在卸载后我可以访问我的数据库。

每次更新 db 文件时的目标复制

  1. 创建时说 text.db
  2. 现在我想将此 db 文件复制到 micro SD 卡
  3. 此 db 文件(应用程序 db 文件)正在更新
  4. 现在将这个 db 文件复制并替换到 micro sd 卡
4

1 回答 1

1

将数据库复制到 SD 卡的 Sudo 代码。要将其复制回来,只需反转流。

         public boolean copyDatabase() {
            String SDCardPath = Environment.getExternalStorageDirectory().getAbsolutePath();
            // Create the directory if neccesary.
            File directory = new File(SDCardPath  + <PATH TO SD-CARD SAVE LOCATION>);
            if (!directory.exists())
                    directory.mkdir();


            // Close the database before trying to copy it
            database.close();

            // Copy database to SD-card
            try {
                    InputStream mInput = new FileInputStream(<PATH TO DATABASE ON PHONE>);
                    OutputStream mOutput = new FileOutputStream(SDCardPath + <PATH TO SD-CARD SAVE LOCATION>);

                    byte[] buffer = new byte[1024];
                    int length;
                    while ((length = mInput.read(buffer)) > 0) {
                            mOutput.write(buffer, 0, length);
                    }
                    mOutput.flush();
                    mOutput.close();
                    mInput.close();
            } catch (Exception e) {

            }

            return database.open();
    }
于 2012-04-13T07:51:38.827 回答