为了导出我的领域文件,我使用了下一个代码:
File exportRealmFile;
exportRealmFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "default.realm");
getRealm().writeCopyTo(exportRealmFile);
之后,我尝试导入此文件。我打开 Android Monitor 并将文件推送到另一台设备上。
但是当我想获取 RealmObject 时,例如,StatObject 我看到对象大小为 0。但我知道大小不是 0。
RealmResults<StatObject> statObjects =
realmForThisThread.where(StatObject.class).findAll();
LOG.debug("Size "+statObjects.size());
我打开 Stetho 并没有看到任何物体!但在导出之前,我看到了七个不同的领域对象。但是,库本身具有相同的大小。我究竟做错了什么?
我正在尝试使用以下方法导入领域文件:
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder()
.name("Realmexport.realm")
.assetFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath())
.build();
// Realm.setDefaultConfiguration(realmConfiguration);
但什么都没有改变。
导入文件:
File oldRealmFile = new File(getRealm().getPath());
File newFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) ,"default.realm");
FileOutputStream outputStream=null;
FileInputStream inputStream=null;
try {
outputStream = new FileOutputStream(oldRealmFile);
inputStream = new FileInputStream(newFile);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, bytesRead);
}
outputStream.close();
inputStream.close();
}catch (IOException exc){
exc.printStackTrace();
}finally {
}
这种方法有助于导入文件,但新文件我不能使用它。因为我没有看到我的对象。