ITPub博客

首页 > 应用开发 > IT综合 > JAVA 如何实现大文本去除重复行

JAVA 如何实现大文本去除重复行

IT综合 作者:rqgxy 时间:2020-05-21 15:13:03 0 删除 编辑

去重复行,用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 结构化文本计算

 

SPL也能很方便地嵌入到JAVA应用,可参考: Java 如何调用 SPL 脚本

具体使用方法可参考:  如何使用集算器


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31555597/viewspace-2693532/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-09-20

  • 博文量
    406
  • 访问量
    257607