我有一个应用程序,我正在更新我的 SQLite db 文件,但是每次当用户卸载这个应用程序时,这个 db 文件都会被删除,并且在重新安装时会创建一个新的 db 文件。我想在每次更新后将此数据库文件复制到微型 SD 卡,以便在卸载后我可以访问我的数据库。
每次更新 db 文件时的目标复制
- 创建时说 text.db
- 现在我想将此 db 文件复制到 micro SD 卡
- 此 db 文件(应用程序 db 文件)正在更新
- 现在将这个 db 文件复制并替换到 micro sd 卡
将数据库复制到 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();
}