1

我有一个 SQLite 数据库,我通过从 res/raw/ 中的 txt 文件中读取行来填充它。它工作正常,但是当应用程序第一次运行时,加载数据库中的所有内容需要几分钟。有没有更快的方法在数据库中加载数据?

4

1 回答 1

2

最好的办法是加载一次,然后将文件复制到资产文件夹中。从那里,您只需在第一次尝试创建数据库时将其复制到正确的位置。这个问题显示了如何做到这一点。

//Copy the database from assets
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();
}
于 2013-01-26T14:42:06.900 回答