BufferedReader
- Java kursu
- Orta seviye
- Ders 72/116
- 5 dk
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
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
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
String line;
while ((line = r.____()) != null) {
System.out.println(line);
}
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 |