退出应用程序并重新启动后覆盖json文件

时间:2018-04-12 15:22:09

标签: java android json

我试图将单个int保存到我的Android项目中的文件中,虽然我无法使我的写入功能起作用。

我的JSON文件:

{
  "user":
 {
   "userid":"0"
 }
}

我的代码:

public String getJsonFile() {
        String jsonLocation = "";
        try {
            InputStream is = getAssets().open("useriidd.json");
            int size = is.available();
            byte[] buffer = new byte[size];
            is.read(buffer);
            is.close();
            jsonLocation = new String(buffer, "UTF-8");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return jsonLocation;
}

public void jsonRead(){
    try {
        JSONObject reader = new JSONObject(getJsonFile());
        JSONObject sys = reader.getJSONObject("user");
        userid = Integer.parseInt(sys.getString("userid"));
    }
    catch (final JSONException e) {
        Log.e("asdasd", e.getMessage());
    }
}

public void jsonWrite(){
    try {
        JSONObject writer = new JSONObject(getJsonFile());
        JSONObject sys = writer.getJSONObject("user");
        sys.put("userid", Integer.toString(userid));
        Log.d("asdasd", getJsonFile());
    }
    catch (final JSONException e) {
        Log.e("asdasd", e.getMessage());
    }
}

如果我退出应用并重新启动它,我还需要保存用户ID值。

2 个答案:

答案 0 :(得分:0)

您应将其存储在'?'Preferences或外部存储(SD卡)文件中。您不能(或不应该)在运行时编辑资产。

答案 1 :(得分:0)

在班级声明

public static final String KEY = "key";
private String value = "you can place any value";
private SharedPreferences sharedPreferences;

onCreate Method

sharedPreferences = PreferenceManager.getDefaultSharedPreferences(YourMainActivity.this);
    sharedPreferences.edit().putString(KEY, value);

onResume方法

value = sharedPreferences.getString(KEY, "defaultValue");

您也可以在onPause方法

上执行此步骤
sharedPreferences.edit().putString(KEY, value);