计算文件中的行数 - Scala

时间:2012-01-14 21:41:28

标签: parsing scala text

我如何计算scala中unix命令行上与wc -l类似的文本文件中的行数?

3 个答案:

答案 0 :(得分:18)

io.Source.fromFile("file.txt").getLines.size

请注意,getLines会返回Iterator[String],因此您实际上并未将整个文件读入内存。

答案 1 :(得分:4)

来自another answer I posted

def lineCount(f: java.io.File): Int = {
  val src = io.Source.fromFile(f)
  try {
    src.getLines.size
  } finally {
    src.close()
  }
}

或者,使用scala-arm

import resource._

def firstLine(f: java.io.File): Int = {
  managed(io.Source.fromFile(f)) acquireAndGet { src =>
    src.getLines.size
  }
}

答案 2 :(得分:0)

val source = Source.fromFile(new File("file")).getLines
var n = 1 ; while (source.hasNext) { printf("%d> %s", n, source.next) ; n += 1 }


val source = Source.fromFile(new File("file")).getLines
for ((line, n) <- source zipWithIndex) { printf("%d> %s", (n + 1), line) }
相关问题