In this tutorial, you shall learn how to read the contents of a file line by line in Kotlin, using Scanner.nextLine() function, with example programs.

Kotlin – Read a file line by line

To read a file line by line in Kotlin, we can use Scanner class.

Steps to read a file line by line

  1. Consider that we are given a file identified by a path.
  2. Create a file object from the given file path, and create a Scanner object from the file object.
  3. Using Scanner.hasNextLine() and Scanner.nextLine() functions, we can read the file contents line by line.
val file = File("path/to/file")
val sc = Scanner(file)
while (sc.hasNextLine()) {
    val line = sc.nextLine()
    println(line)
}
ADVERTISEMENT

Example

In the following program, we read the text file info.txt line by, and print these lines to standard output.

Kotlin - Read a file line by line

Main.kt

import java.io.File
import java.io.IOException
import java.util.*

fun main() {
    val fileName = "info.txt"
    try {
        val file = File(fileName)
        val sc = Scanner(file)
        while (sc.hasNextLine()) {
            val line = sc.nextLine()
            println(line)
        }
    } catch (e: IOException) {
        e.printStackTrace()
    }
}

Output

hello world
foo bar
apple banana

Conclusion

In this Kotlin Tutorial, we learned how to read a file line by line using java.util.Scanner class.