2

重複の可能性:
Android アプリケーションで既存のデータベースを使用する方法

.db ファイルのコンテンツをアセットにコピーせずに、アセットから data/data/packagename/ に .db ファイルを配置する方法。.db ファイルをアセットに入れるのは無駄なので、データベースを作成したくありません。私はそれを調べますが、すべてが再びデータベースを作成していますが、その.dbファイルを直接配置したいだけです。

4

1 に答える 1

8

これを使って

private void copyDataBase() throws IOException {

    // Open your local db as the input stream
    InputStream myInput = myContext.getAssets().open(DB_NAME);
    // Path to the just created empty db
    String outFileName =  "/data/data/"
            +getApplicationContext().getPackageName()
            + "/databases/" + DB_NAME;
    // Open the empty db as the output stream
    OutputStream myOutput = new FileOutputStream(outFileName);
    // transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer)) > 0) {
        myOutput.write(buffer, 0, length);

    }
    // Close the streams
    myOutput.flush();
    myOutput.close();
    myInput.close();
}
于 2013-01-17T12:55:51.640 に答える