【问题标题】:FileReader, create file if does not exist [duplicate]FileReader,如果不存在则创建文件[重复]
【发布时间】:2016-01-22 03:29:46
【问题描述】:

我正在编写一个方法,假设将新电影添加到我的 JSON 列表中。它必须附加到现有列表(如果有)。如果文件不存在,则创建一个 JSON 文件。

我正在使用org.json.simple library

我现在遇到的问题是,如果文件不存在,它将无法工作。如何检查我是否是第一次编写并相应地进行管理?

    public void insertMovie()
{
    Scanner myScanner = new Scanner(System.in);
    String movieTitle, movieType, director;
    System.out.println("Input the following");
    System.out.println("Movie Title: ");
    movieTitle = myScanner.next();
    System.out.println("Movie type: ");
    movieType = myScanner.next();
    System.out.println("Director's name: ");
    director = myScanner.next();

    JSONParser parser=new JSONParser();
    try{
        Object obj = parser.parse(new FileReader("./Database/Movies.json"));
        JSONObject currentObject = (JSONObject) obj;
        JSONArray movieArray = (JSONArray) currentObject.get("Movies");

        JSONObject newObject = new JSONObject();
        newObject.put("title", movieTitle);
        newObject.put("type", movieType);
        newObject.put("director", director);
        movieArray.add(newObject);
        FileWriter file = new FileWriter("./Database/Movies.json");
        file.write(movieArray.toJSONString());
        file.flush();
        file.close();
    }
    catch (FileNotFoundException e) {
        e.printStackTrace();
    }   
    catch (IOException e) {
        e.printStackTrace();
    }   
    catch (ParseException e) {
        e.printStackTrace();
    }
}

示例 JSON 数据:

{
   "Movies":[  
      {  
         "director":"director1",
         "title":"title1",
         "type":"type1"
      },
      {  
         "director":"director2",
         "title":"title2",
         "type":"type2"
      },
      {  
         "director":"director3",
         "title":"title3",
         "type":"type3"
      },
      {  
         "director":"lol3",
         "title":"lol1",
         "type":"lol2"
      }
   ]
  }

【问题讨论】:

  • 文件不存在怎么办?你有例外吗?

标签: java json filereader


【解决方案1】:
File f = new File("./Database/Movies.json");
if(f.exists() && !f.isDirectory())
    //write your json file

How do I check if a file exists in Java?

【讨论】:

    【解决方案2】:

    您在问题中提到,如果文件不存在,此代码将不起作用。好吧,如果它不存在,那么您可以通过以下方式创建它。

    File yourFile = new File("./Database/Movies.json");
    
    if(!yourFile.exists()) {
        yourFile.createNewFile(); //creating it
    }
    
    else if(yourFile.exists() && !yourFile.isDirectory()) {
        //append it
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 2012-10-02
      • 2013-06-24
      • 2017-11-22
      • 2012-05-10
      • 2021-07-08
      • 2014-12-10
      • 2020-08-18
      • 1970-01-01
      相关资源
      最近更新 更多