首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从SD卡/外部存储Android恢复领域DB

从SD卡/外部存储Android恢复领域DB
EN

Stack Overflow用户
提问于 2017-02-17 08:15:21
回答 1查看 895关注 0票数 0

在我的情况下,我会提示用户是否使用google备份服务备份他们的消息。我正在成功地将当前的领域数据库备份到SD卡上,从那里备份到google服务。但是,我仍然想要将数据库从SD卡恢复到当前领域实例,这意味着用SD卡上可用的文件替换当前的领域文件。

在较早的版本中,我看到这个领域提供了一种方法来指定一个自定义路径,该路径将从哪个领域读取数据库文件,但在这个新版本中,我没有看到任何一个。

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-17 08:20:20

创建备份文件

代码语言:javascript
运行
复制
public void backup() {
    try {
        // create a backup file
        File exportRealmFile;
        exportRealmFile = new File(EXPORT_REALM_PATH, EXPORT_REALM_FILE_NAME);

        // if backup file already exists, delete it
        exportRealmFile.delete();

        // copy current realm to backup file
        realm.writeCopyTo(exportRealmFile);

    } catch (IOException e) {
        e.printStackTrace();
    }
    realm.close();
}

恢复

代码语言:javascript
运行
复制
private String copyBundledRealmFile(String oldFilePath, String outFileName) {
    try {
        File file = new File(activity.getApplicationContext().getFilesDir(), outFileName);

        FileOutputStream outputStream = new FileOutputStream(file);

        FileInputStream inputStream = new FileInputStream(new File(oldFilePath));

        byte[] buf = new byte[1024];
        int bytesRead;
        while ((bytesRead = inputStream.read(buf)) > 0) {
            outputStream.write(buf, 0, bytesRead);
        }
        outputStream.close();
        return file.getAbsolutePath();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

希望能帮上忙。

贷给链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42292707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档