Android 如何替换SQLite数据库

Android 如何替换SQLite数据库,android,sqlite,Android,Sqlite,有没有办法替换一个完整的SQLite数据库?我正在考虑建立一个应用程序,其中包含大量的数据,我需要能够更新它。幸运的是,我能够验证数据库结构不会改变,只会改变数据。有没有一个干净的方法可以做到这一点 --编辑-- 抱歉-我需要补充更多细节: 为了更新应用程序中的数据,计划只是替换将从某个服务器抓取的数据库。因此,我不会使用onUpgrade或手动添加数据-我希望转储现有文件并复制一个新文件以替换旧文件 我想数据库通常会存储在“/data/data/YOUR_PACKAGE/databases/”

有没有办法替换一个完整的SQLite数据库?我正在考虑建立一个应用程序,其中包含大量的数据,我需要能够更新它。幸运的是,我能够验证数据库结构不会改变,只会改变数据。有没有一个干净的方法可以做到这一点

--编辑--

抱歉-我需要补充更多细节:

为了更新应用程序中的数据,计划只是替换将从某个服务器抓取的数据库。因此,我不会使用
onUpgrade
或手动添加数据-我希望转储现有文件并复制一个新文件以替换旧文件

我想数据库通常会存储在“/data/data/YOUR_PACKAGE/databases/”中,我有权访问这个目录吗?在这种情况下,我可以从服务器下载文件并从顶部复制它(显然要确保没有任何东西首先访问文件等)

在类中是一个
onUpgrade
方法,如果通过构造函数传递新的数据库版本,则调用该方法。
在这里,您可以删除数据库并创建一个新的数据库,也可以更改并创建表。

不清楚您要做什么

如果应用程序是只读的,并且使用在应用程序外部创建的SQLite数据库,那么您可以简单地替换SQLite数据库文件


如果要替换数据库中的各个表,同时保持应用程序的可写表不变,可以从现有表中删除数据,并使用INSERT INTO从其他数据库获取数据。您还可以使用提供的命令行工具和“.import”命令从CSV文件加载。

这个问题与我的问题相同:


SQLite数据库只是一个文件。所以,如果你想从一个新的数据库开始,那么就开始一个新的文件。。。
File dbfile = new File("/sdcard/mydb.sqlite" ); 
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
System.out.println("Its open? "  + db.isOpen());