CodeBlanks Logo Icon CodeBlanks

BufferedReader

BufferedReader ile satır okumayı öğrenirsin.

BufferedReader ile satır okuma

BufferedReader, FileReader'ı sararak daha verimli okuma yapar. En önemli metot readLine()'dır: dosyadan bir satırı String olarak döndürür; satır sonu karakterini içermez. Dosya sonuna gelindiğinde null döner.

Kullanımı: BufferedReader r = new BufferedReader(new FileReader("a.txt"));. Döngü ile String line = r.readLine(); while (line != null) { ... line = r.readLine(); } biçiminde okunur. BufferedWriter ise yazmayı hızlandırır; newLine() ile platformdan bağımsız satır sonu ekler.

BufferedReader kullanımı

BufferedReader'ı doğrudan değil, bir Reader ile sararak oluşturursun: new BufferedReader(new FileReader(path)). Bu decorator desenidir: BufferedReader, FileReader'ın yeteneklerini genişletir. read() hala tek karakter okur ama readLine() satırı tek seferde verir.

Büyük dosyalarda arabellek (buffer) sayesinde disk erişimi azalır; okuma çok daha hızlı olur. Varsayılan arabellek boyutu 8 KB'dir.

Uygulama BufferedReader ile dosyayı satır satır oku

import java.io.BufferedReader; ve import java.io.FileReader; içe aktar. main içine throws IOException ekle. Önce bir dosyaya yaz: FileWriter fw = new FileWriter("liste.txt"); fw.write("Bir\nİki"); fw.close();. Sonra BufferedReader r = new BufferedReader(new FileReader("liste.txt")); ile aç, String line; tanımla, while ((line = r.readLine()) != null) döngüsüyle her satırı yazdır. r.close() ile kapat.

Başlangıç kodu

Main.java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        // Önce dosyaya iki satır yaz

        // BufferedReader ile satır satır oku ve yazdır

    }
}

Örnek çözüm

Main.java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("liste.txt");
        fw.write("Bir\nİki");
        fw.close();
        BufferedReader r = new BufferedReader(new FileReader("liste.txt"));
        String line;
        while ((line = r.readLine()) != null) {
            System.out.println(line);
        }
        r.close();
    }
}

Beklenen çıktı

Bir
İki

Soru ve cevaplar

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

1 BufferedReader.readLine() dosya sonunda ne döner?

  • Boş dize ("")
  • null Doğru cevap
  • -1
  • Satır sonu karakteri

Açıklama: readLine() dosya sonunda null döner; döngü null ile biter.

2 Satır okuma döngüsünü tamamla

Soru
String line;
while ((line = r.____()) != null) {
    System.out.println(line);
}
Cevap
String line;
while ((line = r.readLine()) != null) {
    System.out.println(line);
}

Açıklama: readLine satırı döndürür; null döngüyü bitirir.

3 BufferedReader kavramlarını eşleştir

Kavram Anlamı
readLine() Bir satırı döndürür
null Dosya sonu
FileReader BufferedReader'ın sardığı sınıf
decorator Sarma deseni

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