2012-01-14 17 views

答えて

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

getLinesはそうあなたが実際にメモリにファイル全体を読んでいないIterator[String]を返すことに注意してください。

+1

これは、おかげで完璧です!!!! – dave

+2

あなたの[他の質問](http://stackoverflow.com/q/8865434/115478)への回答と同様に、これはファイル記述子を漏洩します。 – leedm777

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) } 
3

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 
    } 
} 
関連する問題