如何通过 FileinputStream 添加恢复设置功能

问题描述

所以我是编程新手,我在我的应用程序中添加一个功能,它通过使用 fileoutputStream 将所有共享首选项键值保存在设备内部数据文件夹中,像这样在地图中添加所有数据并存储在 jsonobject 中

private String maptojson(){
    Map<String,?> map = prf.getAll();
    JSONObject object = new JSONObject();
    for (Map.Entry<String,?> entry : map.entrySet()){
        try {
            object.put( entry.getKey(),entry.getValue());
        } catch (JSONException e) {
            e.printstacktrace();
        }
    }
    return object.toString();
}

现在使用 FileOutputStream 在内部存储“数据”中写入文件

public void backupSetting() {
    Throwable th;
    FileOutputStream fileOutputStream;
    IOException e;
    FileOutputStream fileOutputStream2 = null;
    File externalStorageDirectory = Environment.getExternalStorageDirectory();
    if (externalStorageDirectory.exists() && externalStorageDirectory.canWrite()) {
        if (externalStorageDirectory.getUsableSpace() >= 1048576) {
            File file = new File(externalStorageDirectory.toString() + "/data/MyApp/" + "MyAppSetting.ma");
            try {
                new File(file.getParent()).mkdirs();
                file.createNewFile();
                fileOutputStream = new FileOutputStream(file);
                try {
                    fileOutputStream.write(maptojson().getBytes());
                    fileOutputStream.flush();
                    fileOutputStream.close();
                    if (fileOutputStream != null) {
                        try {
                            fileOutputStream.close();
                        } catch (IOException e2) {
                            e2.printstacktrace();
                        }
                    }
                } catch (IOException e3) {
                    e = e3;
                    try {
                        e.printstacktrace();
                        if (fileOutputStream != null) {
                        }
                    } catch (Throwable th2) {
                        th = th2;
                        fileOutputStream2 = fileOutputStream;
                        if (fileOutputStream2 != null) {
                            try {
                                fileOutputStream2.close();
                            } catch (IOException e4) {
                                e4.printstacktrace();
                                throw th;
                            }
                        }
                        throw th;
                    }
                }
            } catch (IOException e5) {
                e = e5;
                fileOutputStream = null;
                e.printstacktrace();
                if (fileOutputStream != null) {
                    try {
                        fileOutputStream.close();
                    } catch (IOException e6) {
                        e6.printstacktrace();
                    }
                }
            } catch (Throwable th3) {
                th = th3;
                if (fileOutputStream2 != null) {
                }
                try {
                    throw th;
                } catch (Throwable throwable) {
                    throwable.printstacktrace();
                }
            }
        }
    }

现在我想添加恢复设置意味着使用该文件“MyAppSetting.ma”恢复设置。我知道我可以通过使用 FileInputStream 来做到这一点,但我不明白该怎么做?如果可以,请帮忙

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)