下载和java io流处理全国空气质量历史数据

本文介绍了一种使用Java IO流处理大量城市空气质量数据的方法,通过读取原始CSV文件并将其转换为特定格式,以便于进一步的数据分析和处理。文章详细展示了如何使用BufferedReader和BufferedWriter进行文件读写操作,以及如何利用ArrayList进行数据存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载源数据http://beijingair.sinaapp.com/

源数据格式:

需要格式:

javaIO流处理代码:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
	public static void main(String[] args) throws Exception {
		String[] citynames="北京,天津,石家庄,唐山,秦皇岛,邯郸,保定,张家口,承德,廊坊,沧州,衡水,邢台,太原,呼和浩特,沈阳,大连,长春,哈尔滨,上海,南京,苏州,南通,连云港,徐州,扬州,无锡,常州,镇江,泰州,淮安,盐城,宿迁,杭州,宁波,温州,绍兴,湖州,嘉兴,台州,舟山,金华,衢州,丽水,合肥,福州,厦门,南昌,济南,青岛,郑州,武汉,长沙,广州,深圳,珠海,佛山,中山,江门,东莞,惠州,肇庆,南宁,海口,重庆,成都,贵阳,昆明,拉萨,西安,兰州,西宁,银川,乌鲁木齐,湘潭,株洲,包头,鄂尔多斯,营口,盘锦,泉州,莱芜,临沂,德州,聊城,滨州,淄博,枣庄,烟台,潍坊,济宁,泰安,日照,威海,东营,韶关,汕头,湛江,茂名,梅州,汕尾,阳江,清远,潮州,云浮,玉溪,菏泽,大同,长治,临汾,阳泉,赤峰,鞍山,抚顺,本溪,锦州,吉林,齐齐哈尔,牡丹江,大庆,芜湖,马鞍山,九江,洛阳,安阳,开封,焦作,平顶山,三门峡,宜昌,荆州,岳阳,常德,张家界,桂林,北海,柳州,三亚,绵阳,宜宾,攀枝花,泸州,自贡,德阳,南充,遵义,曲靖,咸阳,铜川,延安,宝鸡,渭南,金昌,嘉峪关,石嘴山,克拉玛依,库尔勒,寿光,章丘,即墨,胶南,胶州,莱西,平度,蓬莱,招远,莱州,荣成,文登,乳山,吴江,昆山,常熟,张家港,太仓,句容,江阴,宜兴,金坛,溧阳,海门,临安,富阳,义乌,诸暨,瓦房店,信阳,周口,漳州,晋城,朔州,晋中,运城,忻州,吕梁,乌海,通辽,呼伦贝尔,巴彦淖尔,乌兰察布,兴安盟,锡林郭勒盟,阿拉善盟,阜新,铁岭,四平,辽源,通化,白山,松原,白城,延边州,鸡西,鹤岗,双鸭山,伊春,佳木斯,七台河,黑河,绥化,大兴安岭地区,蚌埠,淮南,淮北,铜陵,安庆,黄山,滁州,阜阳,宿州,六安,亳州,池州,宣城,莆田,三明,南平,龙岩,宁德,景德镇,萍乡,新余,鹰潭,赣州,吉安,宜春,抚州,上饶,鹤壁,新乡,濮阳,许昌,漯河,南阳,商丘,驻马店,黄石,十堰,鄂州,荆门,孝感,黄冈,咸宁,随州,恩施州,衡阳,邵阳,益阳,郴州,永州,怀化,娄底,湘西州,梧州,防城港,钦州,贵港,玉林,百色,贺州,河池,来宾,崇左,广元,遂宁,内江,乐山,眉山,广安,达州,雅安,巴中,资阳,阿坝州,甘孜州,凉山州,六盘水,安顺,铜仁地区,毕节,黔西南州,黔东南州,黔南州,保山,昭通,丽江,临沧,楚雄州,红河州,文山州,西双版纳州,大理州,德宏州,怒江州,迪庆州,昌都地区,山南地区,日喀则地区,那曲地区,阿里地区,林芝地区,汉中,榆林,安康,商洛,白银,天水,武威,张掖,平凉,酒泉,庆阳,定西,陇南,临夏州,甘南州,海东地区,海北州,黄南州,海南州,果洛州,玉树州,海西州,吴忠,中卫,固原,吐鲁番地区,哈密地区,昌吉州,博州,阿克苏地区,喀什地区,和田地区,伊犁哈萨克州,塔城地区,阿勒泰地区,石河子,五家渠,克州,普洱,襄阳,葫芦岛,河源,揭阳,辽阳,朝阳,丹东".split(",");
		BufferedReader br=new BufferedReader(new FileReader("src/all.csv"));
		File file=new File("src/allData_2018.csv");
		file.createNewFile();
		BufferedWriter bw=new BufferedWriter(new FileWriter(file));
		
		//AQI PM2.5 PM2.5_24h PM10 PM10_24h SO2 SO2_24h NO2 NO2_24h O3 O3_24h O3_8h O3_8h_24h CO CO_24h
		List<String> AQI=new ArrayList<String>();
		List<String> PM25=new ArrayList<String>();
		List<String> PM25_24h=new ArrayList<String>();
		List<String> PM10=new ArrayList<String>();
		List<String> PM10_24h=new ArrayList<String>();
		List<String> SO2=new ArrayList<String>();
		List<String> SO2_24h=new ArrayList<String>();
		List<String> NO2=new ArrayList<String>();
		List<String> NO2_24h=new ArrayList<String>();
		List<String> O3=new ArrayList<String>();
		List<String> O3_24h=new ArrayList<String>();
		List<String> O3_8h=new ArrayList<String>();
		List<String> O3_8h_24h=new ArrayList<String>();
		List<String> CO=new ArrayList<String>();
		List<String> CO_24h=new ArrayList<String>();
		
		bw.write("date,hour,name,aqi,pm25,pm25_24h,pm10,pm10_24h,so2,so2_24h,no2,no2_24h,o3,o3_24h,o3_8h,o3_8h_24h,co,co_24h");
		bw.newLine();
		
		String line=null;
		while((line=br.readLine())!=null) {
			if(line.contains("date")) {
				line=br.readLine();
			}
			AQI=Arrays.asList(line.split(","));
			PM25=Arrays.asList(br.readLine().split(","));
			PM25_24h=Arrays.asList(br.readLine().split(","));
			PM10=Arrays.asList(br.readLine().split(","));
			PM10_24h=Arrays.asList(br.readLine().split(","));
			SO2=Arrays.asList(br.readLine().split(","));
			SO2_24h=Arrays.asList(br.readLine().split(","));
			NO2=Arrays.asList(br.readLine().split(","));
			NO2_24h=Arrays.asList(br.readLine().split(","));
			O3=Arrays.asList(br.readLine().split(","));
			O3_24h=Arrays.asList(br.readLine().split(","));
			O3_8h=Arrays.asList(br.readLine().split(","));
			O3_8h_24h=Arrays.asList(br.readLine().split(","));
			CO=Arrays.asList(br.readLine().split(","));
			CO_24h=Arrays.asList(br.readLine().split(","));
			for(int i=0;i<citynames.length;i++) {
				bw.write(AQI.get(0)+","+AQI.get(1)+","+citynames[i]+","+AQI.get(i+3)+","+PM25.get(i+3)+","+PM25_24h.get(i+3)+","+PM10.get(i+3)+","+PM10_24h.get(i+3)+","+SO2.get(i+3)+","+SO2_24h.get(i+3)+","+NO2.get(i+3)+","+NO2_24h.get(i+3)+","+O3.get(i+3)+","+O3_24h.get(i+3)+","+O3_8h.get(i+3)+","+O3_8h_24h.get(i+3)+","+CO.get(i+3)+","+CO_24h.get(i+3));
				bw.newLine();
			}
		}
		bw.close();
		br.close();

	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值