Kotlin

Read a File — Whole, Lines, or Stream

admin by @admin ADMIN
Jun 14, 2026
Jun 1, 2026
Public
0 0 up · 0 down Sign in to vote
Stdlib extensions on `java.io.File` and `java.nio.file.Path`. Use `readText()` for small files, `useLines { }` for memory-efficient line-by-line.
Kotlin
Raw
import java.io.File
import java.nio.file.Files
import java.nio.file.Path

fun main() {
    val f = File("/etc/hosts")

    // Whole file → String (small/medium files only)
    val text: String = f.readText(Charsets.UTF_8)
    println("len = ${text.length}")

    // Whole file → List<String> (one element per line)
    val lines: List<String> = f.readLines()
    println("first line: ${lines.first()}")

    // Streaming line-by-line — constant memory
    f.useLines { seq ->                      // seq is a Sequence<String>
        seq.filter { !it.startsWith("#") }
           .filter { it.isNotBlank() }
           .forEach { println(it) }
    }

    // Binary bytes
    val bytes: ByteArray = f.readBytes()
    println("bytes = ${bytes.size}")

    // nio path API
    val nioText = Files.readString(Path.of("/etc/hosts"))
}
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.