1

res /raw/内のtxtファイルから行を読み取ることで入力するSQLiteデータベースがあります。正常に動作しますが、アプリを初めて実行するときに、データベースにすべてをロードするのに数分かかります。データベースにデータをロードするより速い方法はありますか?

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 に答える