我不想使用我在计算机上创建的数据库文件。
虽然这是可行的,但我认为这是一个不好的解决方法,因为它在创建自己的 api 时没有使用现有的 API。
我希望能够使用 getWritableDataBase()、onCreate(SQLiteDatabase db) 和 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 方法。
所以,这就是我所做的,但由于某种原因它不起作用。我认为如果我要重写现有数据库,它会起作用,但是在查询时我得到表不存在异常。
public void onCreate(SQLiteDatabase db) {
File f = new File(db.getPath());
try {
InputStream is = context.getResources().getAssets().open("words1.db");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
FileOutputStream fos = new FileOutputStream(f);
fos.write(buffer);
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
那么如何在使用现有 api 的同时使用预填充的数据库呢?