在Scala 2.8中执行文件IO的最佳方法是什么?
我想做的就是将大量的CSV文件剪切成许多较小的文件,每个文件包含1000行数据,每个文件保留标题。
答案 0 :(得分:12)
对于像这样的简单任务,我会使用scala.io.Source
。一个例子如下:
val input = io.Source.fromFile("input.csv").getLines()
if (input.hasNext) {
// assuming one header line
val header = List(input.next())
for ((i, lines) <- Iterator.from(1) zip input.grouped(linesPerFile)) {
val out = createWriter(i) // Create a file for index i
(header.iterator ++ lines.iterator).foreach(out.println)
out.close
}
}