合并同类数据,虽然可以使用pandas中的dataframe或者数据库的多表关联解决,考录到数据量不大,简单就用list进行解决
直接上源码
package com.hemin.qixiang;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import sun.font.EAttribute;
public class Test {
public static void main(String[] args) throws Exception {
String inputPath1="C:\\Users\\8888\\Documents\\Tencent Files\\383974457\\FileRecv\\2016.10.MD.csv";
String inputPath2="C:\\Users\\8888\\Documents\\Tencent Files\\383974457\\FileRecv\\2016.10.AQI.csv";
String outputPath="C:\\Users\\8888\\Documents\\Tencent Files\\383974457\\FileRecv\\2016.10.AirQuality.csv";
List<String> a1 = readCsv1(inputPath1);
List<String> a2 = readCsv1(inputPath2);
List<String> a3 = new ArrayList<>();
Iterator<String> iterable =a2.iterator();
while(iterable.hasNext()){
String str = iterable.next();
Iterator<String> iterable1 =a1.iterator();
while(iterable1.hasNext()){
String st2 = iterable1.next();
if(str.split(",")[7].equals(st2.split(",")[0])){
a3.add(str+st2);
}
}
}
Iterator<String> iterable2 =a3.iterator();
while(iterable2.hasNext()){
String a = iterable2.next();
System.out.println(a);
}
//System.out.println(a3.get(5));
}
public static List<String> readCsv1(String path) throws Exception{
File file2= new File(path);
InputStreamReader iread2 = new InputStreamReader(new FileInputStream(path));
StringBuilder sb2 = new StringBuilder();
List<String> list = new ArrayList<>();
BufferedReader bufferedReader2 = new BufferedReader(iread2);
String line2=null;
while((line2=bufferedReader2.readLine())!=null){
list.add(line2);
}
iread2.close();
bufferedReader2.close();
return list;
}
}
经测试,效果还算满意!
1916

被折叠的 条评论
为什么被折叠?



