Android:更新assets文件夹中的数据库

时间:2013-10-25 03:52:10

标签: java android sqlite

在我的Android应用程序中,用户可以插入数据,当他/她单击保存按钮时,插入的数据将保存在sqlite数据库中。我有一个预定义的数据库,它位于assets文件夹(.db文件)中。现在它可以保存数据,我可以使用sqlite manage plugin在eclipse中看到插入的数据。但问题是它无法更新assets文件夹中的数据库。我怎么解决这个问题 ?任何人都可以非常友好地解释我该怎么办?

祝你好运

提前完成

2 个答案:

答案 0 :(得分:3)

  

我想知道的是,在插入数据后,如何更新assets资源文件夹中的数据库。

无法在运行时编辑Assets文件夹。 source.

这从资产文件夹中加载数据库:

// Copies DB from assests
private void copyDataBase() throws IOException {
    InputStream mInput = mContext.getAssets().open(DB_NAME);
    String outFileName = DB_PATH + DB_NAME;
    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();
}

有关从资产更新数据库的信息,请参阅此answer

答案 1 :(得分:2)

您不能对保存在资产中的数据库执行任何操作,因为它只是运行时的模式,数据库在data / data / pkg_name / database / myDb.db中获取副本,并且更改将反映在那里而不是资产中