-2

自分のコンピュータで作成したデータベース ファイルを使用したくありません。

これは機能していますが、独自の 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 を使用しながら、事前設定されたデータベースを使用するにはどうすればよいでしょうか?

4

1 に答える 1