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

Valentin Tihomirov picture Valentin Tihomirov · Nov 28, 2015 · Viewed 12.3k times · Source

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?

Answer

Łukasz picture Łukasz · Nov 28, 2015

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()