我需要从 128M 的文件中读取一些数据,然后对于每一行,我都会做一些处理,天真的方法是使用 split 将字符串转换为行集合,然后处理每一行,但也许那无效,因为它会创建一个简单地存储临时结果的集合,这可能是昂贵的。有没有性能更好的方法?
文件很大,所以我启动了几个线程,每个线程会拾取128个chuck,在下面的脚本中rawString是一个128M的chuck。
randomAccessFile.seek(start)
randomAccessFile.read(byteBuffer)
val rawString = new String(byteBuffer)
val lines=rawString.split("\n")
for(line <- lines){
...
}