Java Simple Json意外令牌结束文件

时间:2015-07-24 15:32:34

标签: java json servlets

我正在我的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();
    }

1 个答案:

答案 0 :(得分:1)

默认情况下,只要为文件创建FileWriter,该文件就会被截断。也就是说,数据被删除,文件大小为零。

此时在文件上打开FileReader只是尝试读取空文件。因此文件结束。移动FileWriter的创建,直到您阅读完整个文件并关闭它为止。