几天在做数据校正的时候,其中有一个流程需要在几千行数据中剔除掉其中重复的数据,这个工作量就比较大了,虽然 excel 也有去除重复行的功能,但想到 IO 流中有读取一行数据的方法,如果用程序实现,应该要比用 excel 处理快很多,毕竟excel 还要来回的复制粘贴,而程序只要 run 一下就好了,下面就是具体实现代码
public static void main(String[] args) throws Exception {
// 需要处理数据的文件位置
FileReader fileReader = new FileReader(new File("E:\\tt.txt"));
BufferedReader bufferedReader = new BufferedReader(fileReader);
Map<String, String> map = new HashMap<String, String>();
String readLine = null;
int i = 0;
while ((readLine = bufferedReader.readLine()) != null) {
// 每次读取一行数据,与 map 进行比较,如果该行数据 map 中没有,就保存到 map 集合中
if (!map.containsValue(readLine)) {
map.put("key" + i, readLine);
i++;
}
}
for (int j = 0; j < map.size(); j++) {
System.out.println(map.get("key" + j));
}
}
代码也比较简单,下面我们来看具体效果如何
代码执行后效果
当然,如果数据量很大的话,我们还可以把筛选出来的数据保存到一个文件中,或是进行其他操作也都是比较容易实现的