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