目前要计算我正在使用的文本文件中的行数:
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();
这比我的循环更快更好。但它不会忽略空行。那么,我怎么能用这种方式忽略空行呢?
由于
答案 0 :(得分:4)
Files.lines
返回Stream<String>
。因此,您可以在任何其他流上使用相同的过滤操作:
long count = Files.lines(Paths.get("lorem.txt")).filter(line -> line.length() > 0).count();