2013-11-14 2 views
0

...웹 크롤러 자바

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 감사합니다 :/지금 작동합니다. – Arc

답변

1

당신은 BufferedWriter

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

FileWriter 포장하지만, 단지 BufferedWriter에 대한 액세스 권한이없는 FileWriter 때문에 FileWriter

fw.close(); 

을 닫고 모르고있다, 그것은 원 가능한 남은 버퍼를 플러시하지 마십시오. flush()bw으로 전화하거나 fw 대신 bw을 닫을 수 있습니다. bw.close()을 호출하면 포장 된 FileWriter을 처리합니다.

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

감사합니다. 일종의 다른 의견으로 생각했지만 감사합니다. :) – Arc