【发布时间】:2014-05-25 07:36:42
【问题描述】:
在 Scala 中,为了读取文本文件并将其上传到数组中,一种常见的方法是
scala.io.Source.fromFile("file.txt").getLines.toArray
特别是对于非常大的文件,是否有更快的方法可能是先将字节块读入内存,然后用换行符分割它们? (常用方法见Read entire file in Scala。)
非常感谢。
【问题讨论】:
-
请注意
Source使用BufferedSource,而后者又使用Java 的BufferedReader。所以它已经将数据块读入内存——它不会逐字节读取。 -
@DNA 非常感谢您的观察,想知道是否有(甚至)更快的方法,也许是 java.nio ...
-
请定义非常大的文件以及您将要如何处理这些数据(将其分成几行之后)
-
@om-nom-nom 数值数组 20.000 x 500 ~ 200MB
-
接下来,显而易见的问题是:您当前的方法有多快,以及有多快足够快?
标签: file scala io scalaz scalaz-stream