Pedro Lopes..
40
在"/data/data/'your.app.package'/databases/"文件夹中,您有一个.db文件,它是您的数据库.您可以复制该文件,保存,然后再将其放回原处.
有关如何将数据库备份到外部存储的一个示例:
final String inFileName = "/data/data//databases/foo.db";
File dbFile = new File(inFileName);
FileInputStream fis = new FileInputStream(dbFile);
String outFileName = Environment.getExternalStorageDirectory()+"/database_copy.db";
// Open the empty db as the output stream
OutputStream output = new FileOutputStream(outFileName);
// Transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer))>0){
output.write(buffer, 0, length);
}
// Close the streams
output.flush();
output.close();
fis.close();
这并不总是有效.Sqlite创建wal(预写日志记录)文件,因此您的.db文件可能是陈旧的. (9认同)
在第1行中,我们不是硬编码db文件的路径,而是使用它:final String inFileName = context.getDatabasePath("db_name").getPath(); (6认同)
@OmidOmidi:要恢复数据库,只需将.db文件复制到/data/data//databases/foo.db即可.那是你的问题吗? (2认同)