两个10G的csv文件(t1.csv, t2.csv),两个csv文件里面表头为:id,name,grade
1 2 3
| id: String类型 name: String类型 grade: String类型
|
服务器内存只有1G,找出grade不为空,且grade数字大于90的数据,输出到当前目录下t3.csv文件中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader;
@AllArgsConstructor public class Reader extends Thread {
private final String path; private final BufferedWriter writer;
public void run() { File inputFile = new File(path); try { BufferedReader reader = new BufferedReader(new FileReader(inputFile)); reader.readLine(); while (reader.ready()) { String line = reader.readLine(); String[] splitline = line.split(","); double temp = Double.parseDouble(splitline[2]); if (temp > 90) { writer.write(line); writer.newLine(); writer.flush(); } } reader.close(); } catch (Exception e) { e.printStackTrace(); } }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter;
public class DataFilter {
public static void main(String[] args) { File outputFile = new File("C:\\Users\\Yoon\\Desktop\\t3.csv"); try { BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(outputFile)); Thread t1 = new Reader("C:\\Users\\Yoon\\Desktop\\t1.csv", bufferedWriter); Thread t2 = new Reader("C:\\Users\\Yoon\\Desktop\\t2.csv", bufferedWriter); t1.start(); t2.start(); } catch (Exception e) { e.printStackTrace(); } } }
|