替代从txt填充数据库

时间:2013-01-26 14:39:06

标签: android sqlite android-sqlite

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

1 个答案:

答案 0 :(得分:2)

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

//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();
}