自分のコンピュータで作成したデータベース ファイルを使用したくありません。
これは機能していますが、独自の 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 を使用しながら、事前設定されたデータベースを使用するにはどうすればよいでしょうか?