如何从java中的文本文件中获取行数忽略空行?

时间:2018-01-28 10:14:26

标签: java

目前要计算我正在使用的文本文件中的行数:

File f = new File("lorem.txt");
if(f.exists()){
        try {
            BufferedReader bf = new BufferedReader(new FileReader(f));

            while((s = bf.readLine())!=null) {
                if(s.length() > 0) {
                    nbLinesTotal++;
                }
            }
            bf.close();
        }
        catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       
}

但我在java 8中发现了这一点:

long count = Files.lines(Paths.get("lorem.txt")).count();

这比我的循环更快更好。但它不会忽略空行。那么,我怎么能用这种方式忽略空行呢?

由于

1 个答案:

答案 0 :(得分:4)

Files.lines返回Stream<String>。因此,您可以在任何其他流上使用相同的过滤操作:

long count = Files.lines(Paths.get("lorem.txt")).filter(line -> line.length() > 0).count();