如何用android中的新数据库文件替换现有的sqlite数据库文件

时间:2013-02-04 11:19:53

标签: android sqlite android-sqlite

我正在做一个使用sqlite数据库的应用程序我的应用程序中有一个功能,它有一个“更新数据库”按钮。

当用户点击“更新数据库”按钮时,我需要使用URL中的新db文件升级旧的db文件。

如何做到这一点。研究告诉我,我们不能更改数据库,因为它在.apk文件中。 对此有什么解决方案吗? 请帮帮我。 谢谢。

3 个答案:

答案 0 :(得分:3)

只需使用下载管理器从URL下载db文件并将文件复制到此路径

即可
         /data/data/<YOUR PACKAGE NAME>/databases/

它会自动更新。我已经使用过它并正在使用

答案 1 :(得分:3)

private void importDatabase(String inputFileName) throws IOException
{
    InputStream mInput = new FileInputStream(inputFileName);
    String outFileName = YOUR_DB_PATH_HERE;
    OutputStream mOutput = new FileOutputStream(outFileName);
    byte[] mBuffer = new byte[1024];
    int mLength;
    while ((mLength = mInput.read(mBuffer))>0)
    {
        mOutput.write(mBuffer, 0, mLength);
    }
    mOutput.flush();
    mOutput.close();
    mInput.close();
}

编辑: 您可能会觉得它很有用:

How to use an existing database with an Android application

答案 2 :(得分:0)

首次启动应用程序时,您应该将数据库复制到apk文件中的外部/内部存储中。 当您需要更新(使用语句或替换整个数据库)时,您可以在内部/外部存储器中运行而不会出现问题。 当您更新应用程序时(可能新应用程序内部有新的数据库),在第一次启动新应用程序时,您应该替换存储在内部/外部存储器中的数据库。