2

可能重复:
如何将现有数据库与 Android 应用程序一起使用

如何在不使用资产中复制 .db 文件内容的情况下将 .db 文件从资产放入 data/data/packagename/。我不想创建数据库,因为将 .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 回答