我需要从数据库的“levels”表中读取行。在第一次启动应用程序时,数据库将从assets复制到databases文件夹。当我试图看到文件夹“数据库”里面有什么。
如果我将所有文件保存在桌面上的databases文件夹中,并在“db browser for sqlite”上打开dbarkanoid,则“levels”表不存在。
如果我只将dbarkanoid保存在桌面上的databases文件夹中,并在“dbbrowserforsqlite”上打开dbarkanoid,“levels”表就存在了。
因此,当然,如果我从数据库中删除shm和wal文件,应用程序工作正常,并且找到“levels”表没有问题。
即,从资产复制数据库的方法:
private void copyDataBase() throws IOException {
OutputStream myOutput = new FileOutputStream(DB_PATH + DB_NAME);
byte[] buffer = new byte[1024];
int length;
InputStream myInput = myContext.getAssets().open(DB_NAME);
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myInput.close();
myOutput.flush();
myOutput.close();
}
暂无答案!
目前还没有任何答案,快来回答吧!