kalman03

          每天早上看一遍《福布斯》富翁排行榜,如果上面沒有我的名字,我就去學習......
          隨筆 - 22, 文章 - 0, 評論 - 86, 引用 - 0
          數據加載中……

          (轉)通過Java獲取Google的簡單天氣預報

           

          package com.kalman.test;

          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);
              }

          }

          posted on 2009-08-05 08:55 kalman03 閱讀(1068) 評論(2)  編輯  收藏 所屬分類: J2EE

          評論

          # re: (轉)通過Java獲取Google的簡單天氣預報  回復  更多評論   

          學習了 謝謝
          2009-08-16 09:11 | Down_light_Spotlight

          # re: (轉)通過Java獲取Google的簡單天氣預報  回復  更多評論   

          學習下,thanks
          2010-08-12 14:38 | Wholesale shoes

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 肥东县| 合作市| 九龙县| 中西区| 双牌县| 岢岚县| 西乌珠穆沁旗| 芒康县| 阜康市| 拉萨市| 安仁县| 丰城市| 盘山县| 大英县| 肥城市| 锡林浩特市| 青河县| 衡山县| 满洲里市| 新蔡县| 庄浪县| 庐江县| 香格里拉县| 文登市| 泸水县| 论坛| 邵东县| 罗江县| 大姚县| 上虞市| 信宜市| 堆龙德庆县| 白银市| 民和| 汉沽区| 沿河| 连南| 曲靖市| 长沙县| 开化县| 辽宁省|