几个月前,我制作了一个
Android应用程序.但在那个时候,我并不认为我需要备份我的数据库.事实是,现在我做了,但我没有实现它.
现在,无论如何我都可以进行数据库备份,而不会丢失数据吗?因为我认为如果我为我的数据库备份制作方法,当我构建应用程序时,我将丢失所有数据,因为我有这个方法:
public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { db.execsql("DROP TABLE IF EXISTS " + POINTS_TABLE); db.execsql("DROP TABLE IF EXISTS " + NETWORKS_TABLE); onCreate(db); }
解决方法
将db文件复制到sdcard是一种备份方式
public static void copyFileInSDCard () { try { File sd = Environment.getExternalStorageDirectory (); File data = Environment.getDataDirectory (); if (sd.canWrite ()) { String DATABASE_NAME = "YOURdbnAME"; String currentDBPath = "//data//your.package//databases//" + DATABASE_NAME; String backupDBPath = "FILE[Name]"; File currentDB = new File (data,currentDBPath); File backupDB = new File (sd,backupDBPath); if (currentDB.exists ()) { @SuppressWarnings("resource") FileChannel src = new FileInputStream (currentDB).getChannel (); @SuppressWarnings("resource") FileChannel dst = new FileOutputStream (backupDB).getChannel (); dst.transferFrom (src,src.size ()); src.close (); dst.close (); } } } catch (Exception e) { e.printstacktrace (); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。