我正在尝试在从JSONArray
获取的javafx list[values are added in javafx list at the run-time by the user]
中写入字符串值。
但是,不幸的是,它多次添加同一条目,从而导致文件中的值重复。
public static void DumpValues(String value) throws IOException, ParseException {
try {
Map m = new LinkedHashMap<String, String>();
JSONArray ja = new JSONArray();
// Check if array not exist
File file1 = new File(FILE_NAME);
if (file1.length() == 0) {
JSONObject jo = new JSONObject();
m = new LinkedHashMap<String, String>();
m.put("Data", value);
ja.add(m);
jo.put("Array", ja);
FileWriter file = new FileWriter(FILE_NAME, false);
file.append(jo.toString());
file.flush();
file.close();
} else {
// Check if array exist, add values in the array
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader(FILE_NAME));
if (obj == null) {
System.out.println("ex");
}
JSONObject jsonObject = (JSONObject) obj;
JSONArray jsonArray = (JSONArray) jsonObject.get("Array");
System.out.println("..." +jsonArray.size());
JSONObject jo = new JSONObject();
m = new LinkedHashMap(2);
m.put("Data", value);
jsonArray.add(m);
jo.put("Array", jsonArray);
FileWriter file = new FileWriter(FILE_NAME, false);
file.append(jo.toString());
file.flush();
file.close();
}
} catch (Exception ex) {
Logger.getLogger(JSONSearching.class.getName()).log(Level.SEVERE, null, ex);
}
}
我不知道多次写入String值是什么原因,我只想一次添加该值。