【问题标题】:Web Crawler Java网络爬虫 Java
【发布时间】:2013-11-14 19:07:47
【问题描述】:

...

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 检索天气更新。我确实让它工作了,但它没有解析整个文档(最后一点的剪辑)。我做错了什么?

【问题讨论】:

  • 最好关闭你的bw
  • @SotiriosDelimanolis 哈哈,谢谢:/,它现在可以工作了
  • @ThomasJungblut 是的 ;)

标签: java parsing web-crawler wunderground


【解决方案1】:

您正在用BufferedWriter 包装您的FileWriter

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

但只关闭FileWriter

fw.close();

由于FileWriter 没有访问权限并且不知道BufferedWriter,它不会刷新任何可能的剩余缓冲区。您可以在bw 上调用flush() 或关闭bw 而不是fw。调用 bw.close() 将负责关闭包裹的 FileWriter

bw.close();
in.close();

【讨论】:

  • 谢谢,从您的其他 cmets 中发现了一点,但谢谢 :)
猜你喜欢
  • 1970-01-01
  • 2011-07-07
  • 2011-12-11
  • 1970-01-01
  • 2018-08-12
  • 2012-08-01
  • 2015-05-12
  • 2013-03-29
  • 1970-01-01
相关资源
最近更新 更多