scalareadfileline-by-line

How to read a file line by line and close it afterwards in Scala?


Normally, they will tell you to

import scala.io.Source
for(line <- Source.fromPath("myfile.txt").getLines())
  println(line)

which seems to leave the file open. What is a closeable counterpart?


Solution

  • You can close the Source and this will close your file.

    import scala.io.Source
    
    val source = Source.fromFile("myfile.txt")
    for (line <- source.getLines())
       println(line)
    source.close()