是否有一种方法可以解决BufferedReader读取的行数,而无需解决类似于Java的传统for循环?
以下面的代码为例:
bufferedReader.useLines { it }
.take(10)
.toList()
useLines
的文档指出:据我了解,这意味着将读取整个文件,然后才从序列中过滤掉前十个文件。除了只获取第一行之外,我找不到任何在线解决此问题的方法。
最佳答案
Sequence
是一个延迟评估的集合。这意味着将仅处理必要的项目,因此,如果您使用take(10)
,则仅将处理前10行。
因此,文档中的关键字为:
现在,useLines
在源代码块完成后立即关闭源代码,使您的代码不正确。而是使用以下命令:
val list : List<String> = bufferedReader
.useLines { lines: Sequence<String> ->
lines
.take(10)
.toList()
}