有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过FileinputStream添加还原设置功能

因此,我是编程新手,我在我的应用程序中添加了一项功能,使用fileoutputStream将所有SharedReference密钥值保存在设备内部数据文件夹中,就像这样在map中添加所有数据并存储在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来做,但我不知道怎么做?如果可以,请提供帮助


共 (0) 个答案