2013-11-14 3 views
0

...Web Crawler Java

public static void download() { 
      try { 
       URL oracle = new URL("http://api.wunderground.com/api/54f05b23fd8fd4b0/geolookup/conditions/forecast/q/US/CO/Denver.json"); 
       BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream())); 

       File file = new File("C:\\Users\\User\\Desktop\\test2.json"); 
       if (!file.exists()) { 
        file.createNewFile(); 
       } 
       FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
      BufferedWriter bw = new BufferedWriter(fw); 

       String inputLine; 
       while ((inputLine = in.readLine()) != null) { 
        bw.write(inputLine+"\n"); 
       } 
       fw.close(); 
       in.close(); 
       System.out.println("Finished..."); 
      } 
      catch(MalformedURLException e){e.printStackTrace();} 
      catch(IOException e){e.printStackTrace();} 
     } 

Я делаю веб-сканер для получения обновления погоды от Wunderground. Я получил это, чтобы работать, но он не анализирует весь документ (сокращения последнего бита). Что я сделал не так?

+1

Промыть свой 'bw'. –

+1

Лучше закройте свой 'bw'. –

+0

@SotiriosDelimanolis lol благодарит: /, теперь он работает – Arc

ответ

1

Вы оборачивать ваши FileWriter с BufferedWriter

FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
BufferedWriter bw = new BufferedWriter(fw); 

, но только закрытие FileWriter

fw.close(); 

Поскольку FileWriter не имеет доступа и не знает о BufferedWriter, он выиграл 't очистить любой оставшийся буфер. Вы можете позвонить по телефону flush() по телефону bw или закрыть bw вместо fw. Вызов bw.close() позаботится о закрытии обернутого FileWriter.

bw.close(); 
in.close(); 
+0

Спасибо, любопытно понял это из ваших других комментариев, но спасибо :) – Arc