首页 > 应用开发 > IT综合 > JAVA 如何实现大文本去除重复行
去重复行,用SQL写很简单,就一句SELECT DISTINCT … FROM。但是文件上没法直接用SQL了,想用SQL还得找个数据库先建表,也很麻烦。如果是小文件,那用java对付一下也不太费劲,大概这样:
String file ="d:/urls.txt";
ArrayList<String> result = new ArrayList<String>();
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也能很方便地嵌入到JAVA应用,可参考:
具体使用方法可参考:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69900830/viewspace-2698298/,如需转载,请注明出处,否则将追究法律责任。