import/export pour android la base de données sqlite
J'ai vu quelques posts sur la façon d'importer et d'exporter une base de données sous android et j'ai trouvé ce code, mais je ne peux pas semblent le faire fonctionner. Je reçois le message d'erreur java.io.filenotfoundexception /storage/sdcard0/BackupFolder/DatabaseName:échec de l'ouverture de ENOENT (aucun fichier ou répertoire). Ive a changé quelques choses mais j'ai toujours aucun fichier trouvé exception
voici ma exportation:
private void exportDB() {
try {
db.open();
File newFile = new File("/sdcard/myexport");
InputStream input = new FileInputStream(
"/data/data/com.example.mycarfuel/data
bases/MyDatabase");
OutputStream output = new FileOutputStream(newFile);
byte[] buffer = new byte[1024];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
output.flush();
output.close();
input.close();
db.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
et d'importation:
private void importDB() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//" + "PackageName"
+ "//databases//" + "DatabaseName";
String backupDBPath = "/BackupFolder/DatabaseName
";
File backupDB = new File(data, currentDBPath);
File currentDB = new File(sd, backupDBPath);
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(getBaseContext(), backupDB.toString(),
Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG)
.show();
}
}
- Suivre ce lien
- j'ai vu ce post. la deuxième réponse est la où ive a copié mon code, la première réponse seulement dit à propos de l'import export
- Veuillez consulter ce lien, il est possible de résoudre ce problème: stackoverflow.com/questions/6540906/...
Vous devez vous connecter pour publier un commentaire.
De base de données SQlite à notre système de fichiers local-
Déclaration de fonction-
Fonction définie-
"\Android\android-sdk\platform-tools"
et à travers l'invite de commande, exécutez:adb pull mnt/sdcard/MYDB
où MYDB est le nom de votre base de données.Ci-dessus accepté de répondre ne fonctionne pas pour version d'Android sur ou au-dessus de 6 parce que la base de données chemin est différent.
veuillez vérifier le code ci-dessous . Il fonctionne sur tous les appareils.