有没有更好的方法将数据库从.realm文件导入设备?

时间:2015-09-03 08:13:12

标签: realm

我有一个预先初始化的领域。我将使用下面的代码片段将其复制到设备上的位置。

  //import from assets
    public static RealmConfiguration importDatabase(Context context, String realm_file_name){
        RealmConfiguration defaultRealm = new RealmConfiguration.Builder(context).build();
        String dir = defaultRealm.getPath();
        AssetManager assetManager = context.getAssets();
        try {
            InputStream is;
            is = assetManager.open(realm_file_name);
            File dest = new File(dir);
            if (dest.exists())
                dest.delete();
            copy(is,dest);
        }catch (IOException e){
            Log.e(LOG_TAG,"import database error");
        }
        return defaultRealm;
    }

    public static void copy(File src, File dst) throws IOException {
        InputStream in = new FileInputStream(src);
        OutputStream out = new FileOutputStream(dst);

        // Transfer bytes from in to out
        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        in.close();
        out.close();
    }
    public static void copy(InputStream in, File dst) throws IOException {

        OutputStream out = new FileOutputStream(dst);

        // Transfer bytes from in to out
        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        in.close();
        out.close();
    } 

因此它将覆盖旧的realm文件,他们在同一个地方写入新的realm文件。 是导入数据库的正确方法吗? 如果没有,我怎样才能做得更好?

0 个答案:

没有答案