CodeBlanks Logo Icon CodeBlanks

BufferedReader

BufferedReader ile verimli okumayı öğrenirsin.

BufferedReader ile verimli okuma

BufferedReader metni büyük parçalar halinde arabelleğe alarak okur; bu yüzden çok satırlı girdide Scanner'dan daha hızlıdır. InputStreamReader ile System.in sarmalanır.

import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader reader =
  new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();

readLine() bir satır dize olarak döndürür; dosya sonunda null verir. Bu yöntem IOException fırlatabilir, bu yüzden main imzasına throws java.io.IOException eklenir. Ayrıntısını istisna dersinde göreceksin.

System.in'i sarmala

System.in doğrudan BufferedReader olamaz; önce InputStreamReader ile sarmalanır. Bu, bayt akışını karakter akışına çevirir.

BufferedReader reader =
  new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
System.out.println(line);

İçten dışa doğru oku: önce System.in (bayt), sonra InputStreamReader (karakter), en dışta BufferedReader (arabellek). Bu üç katmanlı yapı Java girdi akışlarının temelidir.

Uygulama Satır oku ve yazdır

Bir BufferedReader oluştur (InputStreamReader ile System.in'i sarmala), readLine ile bir satır oku ve println ile yazdır. Kullanıcı Merhaba dünya yazacak. main imzasına throws java.io.IOException ekle.

Başlangıç kodu

Main.java
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
  public static void main(String[] args) throws java.io.IOException {
    // BufferedReader oluştur, satır oku, yazdır
  }
}

Örnek çözüm

Main.java
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
System.out.println(line);

Beklenen çıktı

Merhaba dünya

Soru ve cevaplar

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

1 BufferedReader hangi yöntemle bir satır okur?

  • nextLine()
  • readLine() Doğru cevap
  • getLine()
  • scanLine()

Açıklama: BufferedReader satır okumak için readLine() kullanır; nextLine Scanner'a aittir.

2 Aracı amacıyla eşleştir

Kavram Anlamı
Scanner Kolay girdi
BufferedReader Hızlı okuma
InputStreamReader Akış sarmalayıcı
readLine() Satır döndürür

3 BufferedReader'i oluştur

Soru
BufferedReader reader =
  new BufferedReader(new InputStreamReader(System.____));
Cevap
BufferedReader reader =
  new BufferedReader(new InputStreamReader(System.in));

Açıklama: System.in konsol girdisidir ve InputStreamReader ile sarmalanır.

Başlangıç bölümündeki tüm dersler