Kotlin:
Läsa en textfil
Hur man gör:
import java.io.File
fun main() {
val path = "example.txt"
val readText = File(path).readText(Charsets.UTF_8)
println(readText)
}
Exempelutskrift:
Detta är innehållet i din textfil.
Med File(path).readText(Charsets.UTF_8)
läser du enkelt hela filen som en sträng.
För större filer som inte bör läsas in i minnet på en gång:
fun main() {
val path = "big_example.txt"
File(path).forEachLine { line ->
println(line)
}
}
Djupdykning
Historiskt sett har filinläsning varit kärnan i många program och skript. I Java, som Kotlin ofta jämförs med, finns det många olika sätt att göra det på – FileReader
, BufferedReader
, Scanner
, för att nämna några. Kotlin förenklar processen genom att erbjuda inbyggda funktioner som readText
och forEachLine
, vilket minskar boilerplate-koden. När det kommer till prestanda och minneshantering bör forEachLine
användas för att processa filen rad för rad, vilket är effektivare för stora filer.
Alternativ för att läsa filer innehåller bland annat att använda InputStream
, readBytes
för binära filer, eller bufferedReader()
för mer kontroll och effektivitet under inläsningen.
En annan viktig del är felhantering. Du bör alltid vara redo att hantera IOExceptions när du arbetar med filinläsning.
Se även
- Oracle guide om fil I/O (ger en bra grund för att förstå grunderna i Java, som Kotlin bygger vidare på): https://docs.oracle.com/javase/tutorial/essential/io/
- Stack Overflow diskussioner om att läsa filer i Kotlin för mer avancerade och specifika användningsfall: https://stackoverflow.com/questions/tagged/kotlin+file-io