我想处理一个包含由空格分隔的浮点值的文本文件(包括换行符);我希望能够处理任意大的输入,所以这Source.fromFile(...).mkString
是毫无疑问的。我认为将实例包装到双打流中应该相对简单,该双打流在每次请求下一个值时都会java.util.Scanner
调用。通过这种方式,我可以有效地减少流,而无需采用命令式方法。我正在考虑以下内容:.nextDouble()
Scanner
val in = new Scanner(...)
val reducedData = wrapScanner(in).fold(...)
PS不确定“流”是否是正确的术语,但我绝对不是专门指Scala Streams。
PPS 我知道存在,Iterator/Stream.continually
但我不知道如何告诉它在哪里停止(以避免NoSuchElementException
在文件末尾出现 a)。