CodeBlanks Logo Icon CodeBlanks

readLines

File.readLines ile satır okuma öğrenirsin.

readLines: Satır listesi

readLines() dosyayı satır satır okur ve her satırı bir String olarak bir List<String> içinde döndürür. Satır sonu karakterleri (\n) listeden çıkarılır. Bu, satırlar üzerinde tek tek işlem yapmayı kolaylaştırır.

val f = File("meyveler.txt")
f.writeText("elma\nmuz\nkiraz")
val lines = f.readLines()
println(lines.size)   // 3
println(lines[0])     // elma

readLines tüm satırları belleğe yükler; küçük ve orta dosyalar için uygundur. Çok büyük dosyalarda useLines ile akış tabanlı okuma tercih edilir. Dönen liste değiştirilemez (immutable); değiştirmek için toMutableList() kullanılır.

Satırlar üzerinde döngü

readLines'tan dönen liste üzerinde for döngüsü ile satırları tek tek gezmek mümkündür. Bu, her satırı ayrı işlemek (örneğin numaralandırma, filtreleme) için yaygın bir desendir. forEachIndexed ile index de alınabilir.

val lines = f.readLines()
for ((i, line) in lines.withIndex()) {
    println("${i + 1}: $line")
}

Burada her satır başına numarası eklenerek yazdırılır. withIndex() metodu, listeyi index-değer çiftlerine çevirir. Bu desen, günlük dosyaları veya raporları işlerken çok kullanışlıdır.

Uygulama Satırları oku ve yazdır

val f = File("meyveler.txt") oluştur. f.writeText("elma\nmuz\nkiraz") ile üç satırlık dosya yaz. val lines = f.readLines() ile satırları oku. println(lines.size) ile satır sayısını, ardından for (line in lines) ile her satırı println ile yazdır. import java.io.File importunu ekle.

Başlangıç kodu

Main.kt
import java.io.File

// File nesnesi: meyveler.txt yolu
// dosyaya "elma\nmuz\nkiraz" yaz (üç satır)
// readLines ile oku, önce size'ı, sonra her satırı yazdır
fun main() {
    // buraya yaz
}

Örnek çözüm

Main.kt
fun main() {
    val f = File("meyveler.txt")
    f.writeText("elma\nmuz\nkiraz")
    val lines = f.readLines()
    println(lines.size)
    for (line in lines) println(line)
}

Beklenen çıktı

3
elma
muz
kiraz

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 readLines kavramlarını eşle

Kavram Anlamı
readLines() Satırları okur
List<String> Dönüş türü
lines.size Satır sayısı
lines[0] İlk satır

2 Satırları oku

Soru
val lines = f.____()
Cevap
val lines = f.readLines()

Açıklama: readLines satırları bir List<String> olarak döndürür.

3 readLines() hangi türde değer döndürür?

  • String
  • Array<Byte>
  • Map<String, Int>
  • List<String> Doğru cevap

Açıklama: readLines her satırı eleman yapan bir List<String> döndürür.

Orta seviye bölümündeki tüm dersler