【问题标题】:Android : Update database in assets folderAndroid:更新资产文件夹中的数据库
【发布时间】:2013-10-25 03:52:09
【问题描述】:

在我的 android 应用程序中,用户可以插入数据,当他/她单击保存按钮时,插入的数据将保存在 sqlite 数据库中。我有一个预定义的数据库,位于资产文件夹(.db 文件)中。现在它可以保存数据,我可以使用 sqlite 管理插件在 eclipse 中看到插入的数据。但问题是它无法更新资产文件夹中的数据库。我怎么解决这个问题 ?谁能解释一下我该怎么办?

最好的问候

提前感谢

【问题讨论】:

    标签: java android sqlite


    【解决方案1】:

    我想知道的是如何在插入数据后更新 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 以从资产更新您的数据库。

    【讨论】:

    • 我的 DatabaseHelper 类中已经有了这个方法,我想知道的是如何在插入数据后更新 assets 文件夹中的数据库。我可以在 android 系统文件夹中看到插入的数据(使用 questoid sqlite manager 插件)。实际上,在我的 android 应用程序中,用户应该写入数据库。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-01
      • 2012-07-21
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      相关资源
      最近更新 更多