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 閱讀(1082) 評論(2)  編輯  收藏 所屬分類: J2EE

          評論

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

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

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

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

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


          網站導航:
           
          主站蜘蛛池模板: 揭东县| 辽阳市| 宁明县| 积石山| 韩城市| 噶尔县| 龙山县| 青铜峡市| 平安县| 玛纳斯县| 建宁县| 屏东县| 普格县| 元江| 托里县| 军事| 通海县| 娱乐| 定结县| 马关县| 涪陵区| 牟定县| 汉源县| 柳河县| 沙雅县| 金沙县| 姜堰市| 蒲城县| 上杭县| 彰化市| 京山县| 宝鸡市| 瑞安市| 喀什市| 大洼县| 武义县| 灵川县| 大足县| 龙里县| 涪陵区| 汉寿县|