...
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中检索天气更新。我确实让它工作,但它没有解析整个文档(最后一点的剪切)。我做错了什么?
答案 0 :(得分:1)
您正在使用FileWriter
BufferedWriter
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
但仅关闭FileWriter
fw.close();
由于FileWriter
没有访问权限且不知道BufferedWriter
,因此它不会刷新任何可能的剩余缓冲区。您可以在flush()
上致电bw
或关闭bw
而不是fw
。致电bw.close()
将负责关闭已包裹的FileWriter
。
bw.close();
in.close();