我正在我的PC上测试一个servlet,但是如果我运行它,我会在第24行得到文件的意外令牌结尾,这是“对象obj = parser.parse(新的FileReader(”C:\ libs \ data.json) “));”。
String id = request.getParameter("id");
JSONParser parser = new JSONParser();
FileWriter file;
file = new FileWriter("C:\\libs\\data.json");
try{
Object obj = parser.parse(new FileReader("C:\\libs\\data.json"));
JSONObject jsonObject = (JSONObject) obj;
String cont = (String) jsonObject.get(id);
System.out.println(cont);
int downloads = Integer.parseInt(cont);
++downloads;
jsonObject.put(id, downloads);
file.write(jsonObject.toJSONString());
}catch(Exception e){
e.printStackTrace();
}finally {
file.flush();
file.close();
}
答案 0 :(得分:1)
默认情况下,只要为文件创建FileWriter
,该文件就会被截断。也就是说,数据被删除,文件大小为零。
此时在文件上打开FileReader
只是尝试读取空文件。因此文件结束。移动FileWriter
的创建,直到您阅读完整个文件并关闭它为止。