Я читаю основную файловую базу данных (database.db), но всегда, когда я ее экспортирую, данные равны предыдущим файлу. p>
Как ни странно, файл базы данных-wal обновляет размер своего файла каждый раз, когда я добавляю новую строку в локальную базу данных. Итак, я не знаю, что мне нужно сделать, чтобы экспортировать последние добавленные строки.
Это мой код экспорта:
Код: Выделить всё
protected Boolean exportarBD(Context context, Activity activity) throws IOException {
Boolean exported = false;
if (!Permisos.validarWriteExternalStorage(context, activity)){
return exported;
}
File backupDir = new File(context.getExternalFilesDir(null), "mydatabase/backup");
if (!backupDir.exists()) {
backupDir.mkdirs(); // Crea los directorios si no existen
}
// Define el nombre del archivo exportado
File exportFile = new File(backupDir, "DB_exported" + (new Date()).toString() + ".db");
File dbFile = new File(context.getApplicationContext().getDatabasePath("database.db").getAbsolutePath());
if (dbFile.exists()) {
// Usa un flujo para copiar la base de datos al nuevo archivo
FileInputStream fis = new FileInputStream(dbFile);
FileOutputStream fos = new FileOutputStream(exportFile);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
fos.flush();
fos.close();
fis.close();
exported = true;
} else {
exported = false;
}
return exported;
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... -file-does
Мобильная версия