Scalaファイルの読み込み

1116 ワード

val lines = scala.io.Source.fromFile("file.txt").mkString

By the way, "scala."isn't really necessary, as it's always in scope anyway, and you can, of course, import io's contents, fully or partially, and avoid having to prepend "io."too.
The above leaves the file open, however. To avoid problems, you should close it like this:
val source = scala.io.Source.fromFile("file.txt")
val lines = try source.mkString finally source.close()

Another problem with the code above is that it is horrible slow due to its implementation nature. For larger files one should use:
source.getLines mkString "
"

I had the same problem as Sharath Prabhal, and I got another (to me clearer) solution :
val s = Seq("apple", "oranges", "apple", "banana", "apple", "oranges", "oranges") s.groupBy(l => l).map(t => (t._1, t._2.length)) With as result :
Map(banana -> 1, oranges -> 3, apple -> 3) shareedit