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 阅读(897) 评论(2)  编辑  收藏 所属分类: J2EE

评论

# re: (转)通过Java获取Google的简单天气预报  回复  更多评论   

学习了 谢谢
2009-08-16 09:11 | Down_light_Spotlight

# re: (转)通过Java获取Google的简单天气预报  回复  更多评论   

学习下,thanks
2010-08-12 14:38 | Wholesale shoes

只有注册用户登录后才能发表评论。


网站导航: