подсчитать количество строк в файле - Scala - PullRequest
5 голосов
/ 15 января 2012

Как мне рассчитать количество строк в текстовом файле, аналогичном wc -l в командной строке unix в scala?

Ответы [ 3 ]

18 голосов
/ 15 января 2012
io.Source.fromFile("file.txt").getLines.size

Обратите внимание, что getLines возвращает Iterator[String], поэтому вы фактически не читаете весь файл в память.

4 голосов
/ 16 января 2012

Письмо от другой ответ, который я отправил :

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

Или, используя скала-руку :

import resource._

def firstLine(f: java.io.File): Int = {
  managed(io.Source.fromFile(f)) acquireAndGet { src =>
    src.getLines.size
  }
}
0 голосов
/ 15 января 2012
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) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...