复制预加载的数据库,添加回车符

时间:2015-03-31 23:02:26

标签: android sqlite android-2.2-froyo

我有一个带预装数据库的应用程序。

我的临时复制功能就像这样

private void copyDatabase() {

    AssetManager assetManager = context.getResources().getAssets();
    InputStream in = null;
    OutputStream out = null;
    try {
        in = assetManager.open(DATABASE_NAME);
        out = new FileOutputStream(DATABASE_FILE);
        byte[] buffer = new byte[1024];
        int read;

        while ((read = in.read(buffer)) > 0){
            out.write(buffer, 0, read);
        }
    } catch (IOException e) {
        Log.e("error", e.getMessage());
    } finally {
        if(in != null) {
            try {
                in.close();
            }catch (IOException e) {
                Log.e("error", e.getMessage());
            }
        }
        if(out != null) {
            try {
                out.close();
            }catch (IOException e) {
                Log.e("error", e.getMessage());
            }
        }
    }
}

然而,在Android 2.2上,我一直收到错误"数据库磁盘映像格式错误"。所以我继续把它从设备上复制到我的电脑上。果然,它不会打开。我对这两个文件进行了十六进制比较,并且有10个实例,其中1个字节不同。 Hex 0D在格式错误的副本中的随机点中添加了10次 复制例程在3.x +中正常工作。我也使用相同的方法开发了其他应用程序,并且没有问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不确定是什么问题,但我创建了一个新的sqlite数据库,导入数据,这似乎有用。