JAVA 如何实现大文本去除重复行
2021-05-13 18:28
标签:运算 建表 res 应用 去重 line cat close http 去重复行,用SQL写很简单,就一句SELECT DISTINCT … FROM。但是文件上没法直接用SQL了,想用SQL还得找个数据库先建表,也很麻烦。如果是小文件,那用java对付一下也不太费劲,大概这样: String file ="d:/urls.txt"; ArrayList BufferedReader br=null; try{ br = new BufferedReader(new FileReader(file)); String row = br.readLine(); while(row!=null){ if(!result.contains(row)){ result.add(row); } row = br.readLine(); } }finally{ if(br!=null) try { br.close(); } catch (IOException e) { } } 但如果是大文件,这代码肯定崩了。这时候得用文件做缓存,或者先排序,总之都非常麻烦。 这种情况,如果有集算器就省事多了,用SPL只要一句话: file("d:/urls.txt").cursor().groupx(#1).fetch() 甚至还可以直接对着文件写SQL: $select distinct #1 from d:/urls.txt 集算器和SPL不仅能对文本做去重,还有很多运算都可以做,其中大多数查询还能直接用SQL,可以参考:SPL 结构化文本计算 SPL也能很方便地嵌入到JAVA应用,可参考:Java 如何调用 SPL 脚本 具体使用方法可参考: 如何使用集算器 JAVA 如何实现大文本去除重复行 标签:运算 建表 res 应用 去重 line cat close http 原文地址:https://www.cnblogs.com/xiaohuihui-11/p/13129005.html