直接编辑SD卡中存在的数据库

时间:2016-01-05 09:11:09

标签: android sqlite

我想直接在SD卡中编辑现有的.db文件。根据{{​​3}},使用以下代码,可以将该数据库复制到/data/data/PACKAGE_NAME/databases/然后进行编辑,但我想在SD卡中对其进行编辑。

public void openDataBase() throws SQLException{
String myPath = DB_PATH + DB_NAME;
myDB = SQLiteDatabase.openDatabase(myPath, null,SQLiteDatabase.OPEN_READWRITE);

有可能吗?

2 个答案:

答案 0 :(得分:0)

http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

有了这个,你可以读/写你的应用程序的内部存储...是不是一个DB文件。

或....您可以打开/读取内部数据库中的数据,然后系统地将其复制到外部存储设备上的新数据库中。

这很乏味,但它让您有机会“清理”您可能不想分享的任何“私人”信息的数据库。

和“乏味”并非“完全”真实,您只需要再次创建每个表,然后读取每个表并将该数据插入新数据库。

答案 1 :(得分:0)

感谢朋友......这就是答案:

首先你应该像这样定义数据库文件:

SQLiteDatabase myDB;

然后,例如插入:

myDB = SQLiteDatabase.openDatabase("/sdcard/mydb.db", null, SQLiteDatabase.OPEN_READWRITE);

        ContentValues cv1 = new ContentValues();
        cv1.put("Field1", "new Field");
        cv1.put("Field2", "other Field");
        myDB.insert("TABLE_NAME", null, cv1);

或更新使用此:

           myDB.update("TABLE_NAME", cv1, "_id=" + 1, null);