如何在没有覆盖Java的情况下写入json文件

时间:2016-01-03 18:33:21

标签: java json spring

我有一个使用ObjectMapper将数据存储到json文件的方法。很好。但是当我尝试添加新数据时,它会清除以前的数据。无论如何,它们都是在没有明文件的情况下编写的。

 public String addnews(@ModelAttribute("SpringWeb")Story story, 
       ModelMap model,HttpServletRequest request) {
       ObjectMapper mapper = new ObjectMapper();  
        try{  
               String phyPath = request.getSession().getServletContext().getRealPath("/");
               String filepath = phyPath + "resources/" + "data.json";
               File file = new File(filepath);
               if (!file.exists()) {
                   System.out.println("pai nai");
                   file.createNewFile();
               }
         mapper.writeValue(file, story);
         mapper.writerWithDefaultPrettyPrinter().writeValueAsString( story);
         System.out.println("Done");
         } 
        catch (IOException e) {
            e.printStackTrace();
        }

          return "result";
       }
  Also how can i get back all those data

1 个答案:

答案 0 :(得分:2)

您可以使用java.nio.file.Files库,例如:

// Create JSON
final String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(story);

// Content is appended (due to StandardOpenOption.APPEND)
Files.write(new File(filepath).toPath(), Arrays.asList(json), StandardOpenOption.APPEND);