获取天气预报java代码

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.SocketTimeoutException;

import java.net.URL;

import java.net.URLConnection;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import net.sf.json.JSONObject;

public class Weather {

String cityid;

URLConnection connectionData;

StringBuilder sb;

BufferedReader br;

JSONObject jsonData;

JSONObject info;

public Weather(String cityid) throws IOException,NullPointerException{

this.cityid = cityid;

URL url = new URL("http://m.weather.com.cn/data/"+cityid+".html");

connectionData = url.openConnection();

connectionData.setConnectTimeout(1000);

try{

br = new BufferedReader(new InputStreamReader(connectionData.getInputStream(), "utf-8"));

sb = new StringBuilder();

String line = null;

while((line = br.readLine()) != null)

sb.append(line);

}catch (SocketTimeoutException e) {

System.out.println("连接超时");

}catch(FileNotFoundException e){

System.out.println("加载文件出错");

}

String datas = sb.toString();

jsonData = JSONObject.fromObject(datas);

info = jsonData.getJSONObject("weatherinfo");

List> list = new ArrayList>();

for(int i=1;i<=6;i++){

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DAY_OF_YEAR,i-1);

Date date = cal.getTime();

SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日");

Map map = new HashMap();

map.put("city", info.getString("city").toString());

map.put("date_y", sf.format(date));

map.put("week", getWeek(cal.get(Calendar.DAY_OF_WEEK)));

map.put("fchh", info.getString("fchh").toString());

map.put("weather", info.getString("weather"+i).toString());

map.put("temp", info.getString("temp"+1).toString());

map.put("wind", info.getString("wind"+1).toString());

map.put("fl", info.getString("fl"+1).toString());

map.put("index", info.getString("index").toString());

map.put("index_uv", info.getString("index_uv").toString());

map.put("index_tr", info.getString("index_tr").toString());

map.put("index_co", info.getString("index_co").toString());

map.put("index_cl", info.getString("index_cl").toString());

map.put("index_xc", info.getString("index_xc").toString());

map.put("index_d", info.getString("index_d").toString());

list.add(map);

}

for(int j=1;j

Map wMap = list.get(j);

System.out.println(wMap.get("city")+"\t"+wMap.get("date_y")+"\t"+wMap.get("week")+wMap.get("weather")+"\t"+wMap.get("temp")+"\t"+wMap.get("index_uv"));

}

}

public String getWeek(int iw){

String weekStr = "";

switch (iw) {

case 1:

weekStr = "星期天";

break;

case 2:

weekStr = "星期一";

break;

case 3:

weekStr = "星期二";

break;

case 4:

weekStr = "星期三";

break;

case 5:

weekStr = "星期四";

break;

case 6:

weekStr = "星期五";

break;

case 7:

weekStr = "星期六";

break;

default:

break;

}

return weekStr;

}

public static void main(String[] args){

try{

new Weather("101010100");//北京市

}catch (Exception e) {

e.printStackTrace();

}

}

}

时间: 2024-08-23 02:07:06

获取天气预报java代码的相关文章

java获取天气预报的信息

运行效果: 主要功能: 1,jsp页面输入省份和城市 根据条件获取当地的天气信息 2,java代码 利用第三方的省份和城市的路径地址 本工程主要实现java获取天气预报的信息步骤1,创建工程weatherDemo2,创建包结构3,创建类4,访问第三方接口 打开主机方法5,获取省份id方法6,获取市id方法7,获取天气的方法8,编写servlet9,发布运行 java代码 创建WeatherDemo类 /** * @version 1.0 * @author ren * 天气预报的核心接口 * *

java网页爬虫简单实例详解——获取天气预报。

[本文介绍] 爬取别人网页上的内容,听上似乎很有趣的样子,只要几步,就可以获取到力所不能及的东西,例如呢?例如天气预报,总不能自己拿着仪器去测吧!当然,要获取天气预报还是用webService好.这里只是举个例子.话不多说了,上看看效果吧. [效果] 我们随便找个天气预报的网站来试试:http://www.weather.com.cn/html/weather/101280101.shtml 从图中可用看出,今天(6日)的天气.我们就以这个为例,获取今天的天气吧! 最终后台打印出: 今天:6日

java代码中获取classpath路径

下载ava web工程中,有时候需要自己手动的去读取classpath下面的配置文件,这里总结一点读取classpath路径的方法,分享一下. 方法一: Java代码 下载 String path = Test.class.getResource("/").toString(); System.out.println("path = " + path); String path = Test.class.getResource("/").toSt

java获取天气预报数据

获取天气预报数据 对于做web项目有天气数据的需求,这个服务很合适: WebXml.com.cn 2400多个城市天气预报Web服务,包含2300个以上中国城市和100个以上国外城市天气预报数据.数据每2.5小时左右自动更新一次,准确可靠.提供webservice 接口,主连接:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx/ 方法调用说明如下: (1)getRegionCountry :获得国外国家名称和与之对应的ID 说明

java代码中获取进程process id(转)

另一方面,线程ID=进程ID+内部线程对象ID并不成立,    参考: blog.csdn.net/heyetina/article/details/6633901     如何在java代码中获取进程process id, 实现方法如下所示:    参考: rednaxelafx.iteye.com/blog/716918 http://www.cnblogs.com/mumuxinfei/p/3678854.html

如何使用Java代码获取文件、文件流或字符串的编码方式

今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.monitorenter.cpdetector.io.ASCIIDetector; import info.monitorenter.cpdetector.io.ByteOrderMarkDetector; import info.monitorenter.cpdetector.io.CodepageDete

Java代码中获取Json的key值

测试json字符串: {"access_token":"hkbQl5o_l67dZ7_vJRATKBwTLk9Yj5QyMuOJThAr8Baj0xWf4wxW1p4ym4iTZ3-ptWRRoVtbCNJnyjGLfed_4bB0HiqGP8v-aXOJUUk1tFs","expires_in":7200,"refresh_token":"_or_31yEp8XhxGWvrAzdWIkXfFlKjfb3iTRpfa

如何使用Java代码获取Android移动终端Mac地址

快下班了,现在总结一下如何使用Java代码获取Android移动终端Mac地址: 通过设备开通WiFi连接获取Mac地址是最可取的,代码如下: /** * 设备开通WiFi连接,通过wifiManager获取Mac地址 * * @author 高焕杰 */ public static String getMacFromWifi(Context context){ ConnectivityManager connectivityManager = (ConnectivityManager) con

Java运行时获取当前运行代码类名、方法名

/*    * 1.获取当前运行代码的类名,方法名,行号,主要是通过java.lang.StackTraceElement类 *  * 2. 获取调用者.当前方法名 *   [1]获得调用者的方法名, 同new Throwable *         String _methodName = new Exception().getStackTrace()[1].getMethodName(); *   [0]获得当前的方法名, 同new Throwable *         String _t