2015-10-22 2 views
0

Я пишу метод, который должен добавить новый фильм в список JSON. Он должен добавляться к существующему списку, если таковой имеется. Или создайте файл JSON, если файл не существует.FileReader, создайте файл, если он не существует

Я использую 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" 
     } 
    ] 
    } 
+0

Что происходит, когда файл не существует? Вы получаете исключение? – CurlyCorvus

ответ

0

Вы упомянули в вопросе, что этот код не будет работать, если файл не существует. Ну, если этого не существует, вот как вы можете его создать.

File yourFile = new File("./Database/Movies.json"); 

if(!yourFile.exists()) { 
    yourFile.createNewFile(); //creating it 
} 

else if(yourFile.exists() && !yourFile.isDirectory()) { 
    //append it 
} 
Смежные вопросы