我试图得到一个lambda在bufferedreader中迭代行所处理的行数。
有没有一种方法可以不写第二个lambda就得到一个计数呢?
final BufferedReader inReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
inReader.lines().forEach(line -> {
// do something with the line
});
我能在上面的代码块中也得到一个计数吗?我正在使用Java11。
2条答案
按热度按时间xlpyo6sf1#
试试这个:
xdyibdwo2#
如果我没听错的话,你就得算你的羔羊。当然,你能做到。只是初始化一个
count
在执行forEach
并增加count
在你的lambda街区。这样地:这个
forEach
方法来自Iterable
. 这绝对不是我选择的处理读者的方式。我会这样做:}
附言:没有真正测试这个,所以纠正我,如果我做错了。