我需要处理一个大的CSV文件,而且我不能一次性把整个文件加载到内存中。我打算逐行处理这个文件。我对Akka流和Scala Source API这两种技术感到困惑。
Akka流提供了一个很好的方法和API来流式处理一个CSV文件,但是我也可以使用Scala源码API来处理,如下所示。
val file = scala.io.Source.fromFile("file.csv")
file.getLines
getLines返回一个迭代器,我们可以通过这个迭代器一次访问一行。它也不会在内存中加载完整的文件。
因此,我注意到使用这两种技术的唯一区别是:Akka流以非阻塞的方式流式传输行,而Source API以阻塞的方式进行。
如果有任何其他潜在的差异和一个技术比另一个技术的优势,请告诉我。这对我来说真的很有帮助。