抓取卫星云图

闲来无事,写了个抓取卫星云图的程序。
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DownloadImages {
public static void main(String[] args) throws Exception {
start("201207310000","201208010000");
}

//指定时间范围内容抓取图片
private static void start(String startDate,String endDate) throws Exception {
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMddHHmm");
Date d1 = formater.parse(startDate);
Date d2 = formater.parse(endDate);
System.out.println("d1:"+d1+" d2:"+d2);

Calendar ca=Calendar.getInstance();
while(d1.compareTo(d2)<=0){
ca.setTime(d1);
//ca2.add(, amount)
System.out.println(formater.format(d1));
getImagesFromUrl(formater.format(d1));
ca.add(ca.MINUTE,15);
d1=ca.getTime();
}
}

//将内容制定url的内容下载到本地的D盘的weatherimages目录下,由于十区的缘故,图片名称和实际时间并不准确,
//需要将实际时间+8个小时
public static void getImagesFromUrl(String urlStr) throws IOException, Exception{
String str = "http://i.weather.com.cn/i/product/pic/l/sevp_nsmc_wxcl_asc_e99_achn_lno_py_"+urlStr+"00000.jpg";
URL url = new URL(str);
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMddHHmm");
Date ddd = formater.parse(urlStr);
Calendar ca=Calendar.getInstance();
ca.setTime(ddd);
ca.add(ca.HOUR_OF_DAY,8);
ddd = ca.getTime();
String filename = formater.format(ddd);
File outFile = new File("D:\\weatherimages\\"+filename+".jpg");
OutputStream os = new FileOutputStream(outFile);
InputStream is = url.openStream();
byte[] buff = new byte[1024];
while(true) {
int readed = is.read(buff);
if(readed == -1) {
break;
}
byte[] temp = new byte[readed];
System.arraycopy(buff, 0, temp, 0, readed);
os.write(temp);
}
is.close();
os.close();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值