readLines
- Kotlin kursu
- Orta seviye
- Ders 97/116
- 5 dk
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]) // elmareadLines 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
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
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
val lines = f.____()
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.