软件构造——guava的按行读大文件

本文介绍了一种利用Guava库高效读取大型文件的方法,适用于软件构造实验。通过使用Files.asCharSource结合LineProcessor接口,可以逐行处理文件,避免一次性加载整个文件到内存,适合处理远超常规大小的文件。

简单来说,guava是由一众谷歌鬼才改进的jdk,在效率和简便上有很大提升,一直以来不为计院幼年程序员所知。本文提供一种guava按行读大文件的方法,可用于软件构造实验中。

 Files.asCharSource(new File(path, "文件名"), Charset.defaultCharset())
                .readLines(new LineProcessor<String>() {
                    public boolean processLine(String line) throws IOException {
                    
                        //这里处理一行字符串
                        //传入的line为文件中的一行
						//此处进行实验中对每行的操作

                        return true;//如果是false,则会中断读取操作,可以替代自定义异常来终止读文件
                    }
 
 
 					//这个方法的内容可以不写
                    public String getResult() {
                        return null;
                    }
                });

其中:

  • asCharSource(new File(path, “文件名”)也可写为 asCharSource(new File(“路径+文件名”)
  • 本方法较为适用远大于软件构造实验中的文件,在实验5中耗时在stream和scanner之间
  • public String getResult()不能省略
  • 对于第一次使用guava的同学,注意guava的文件操作都是Files不是File
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值