我有一个巨大的2GB的文本文件,我想逐行阅读,而不是把所有的东西推到内存中。我已经为此编写了下面的代码片段,但它似乎根本不起作用
yield
打电话。那么我应该如何从函数返回行迭代器呢?
import java.io.{BufferedReader, File, FileInputStream, InputStream, InputStreamReader}
import java.nio.charset.StandardCharsets
def readLines(fileName: String): Iterable[String] = {
val bufferedReader = new BufferedReader(new InputStreamReader(getClass.getClassLoader.getResourceAsStream(fileName), StandardCharsets.UTF_8))
for (line <- bufferedReader.readLine()) {
yield line
}
}