Scala line-by-line UTF-8 file reader
Scala
import scala.io.Source
import scala.util.Using
def foreachLine(path: java.nio.file.Path)(f: String => Unit): Long =
Using.resource(Source.fromFile(path.toFile, "UTF-8")) { source =>
source.getLines().foldLeft(0L) { (count, line) =>
f(line)
count + 1
}
}
def firstLines(path: java.nio.file.Path, n: Int): Vector[String] =
Using.resource(Source.fromFile(path.toFile, "UTF-8"))(_.getLines().take(n).toVector)