TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.Writer;
- import java.net.URL;
- import java.text.DateFormat;
- import java.util.Date;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import org.w3c.dom.Document;
- import org.w3c.dom.NodeList;
- // @description 通过Java获取Google的简单天气预报
- public class GetGoogleWeather {
- /** *//**
- *
- * @param cityName
- * 注意weather那写入城市的拼音转化一下就行, 打开之后是XML格式的然后再提取。
- * @return
- */
- public String getWeather(String cityName, String fileAddr) {
- // 获取google上的天气情况,写入文件
- try {
- URL url = new URL("http://www.google.com/ig/api?hl=zh_cn&weather="
- + cityName);
- InputStream inputstream = url.openStream();
- String s, str;
- BufferedReader in = new BufferedReader(new InputStreamReader(
- inputstream));
- StringBuffer stringbuffer = new StringBuffer();
- Writer out = new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream(fileAddr), "utf-8"));
- while ((s = in.readLine()) != null) {
- stringbuffer.append(s);
- }
- str = new String(stringbuffer);
- out.write(str);
- out.close();
- in.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- // 读取需要的数据
- File file = new File(fileAddr);
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- String str = null;
- try {
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document doc = builder.parse(file);
- NodeList nodelist1 = (NodeList) doc
- .getElementsByTagName("forecast_conditions");
- NodeList nodelist2 = nodelist1.item(0).getChildNodes();
- str = nodelist2.item(4).getAttributes().item(0).getNodeValue()
- + ",temperature:"
- + nodelist2.item(1).getAttributes().item(0).getNodeValue()
- + "℃-"
- + nodelist2.item(2).getAttributes().item(0).getNodeValue()
- + "℃";
- } catch (Exception e) {
- e.printStackTrace();
- }
- return str;
- }
- public static void main(String args[]) {
- GetGoogleWeather ggw = new GetGoogleWeather();
- String cityName = "changsha";
- String fileAddr = "C:/changsha.xml";
- String temperature = ggw.getWeather(cityName, fileAddr);
- Date nowDate = new Date();
- DateFormat dateformat = DateFormat.getDateInstance();
- String today = dateformat.format(nowDate);
- System.out.println(today + " " + cityName + "的天气情况是:" + temperature);
- }
- }
- 运行结果:
- C:java>java GetGoogleWeather
- 2010-4-29 changsha的天气情况是:晴间多云,temperature:15℃-26℃
复制代码
源码下载:http://file.javaxxz.com/2014/10/10/005836609.zip |
|