BufferedReader Neden Kullanılır
Arabellekli ve arabel eksiz okumalar.
BufferedReader Neden Kullanılır, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.
Java'da Girdi Okuma
Gerçek programların çoğunun kullanıcıdan bir girdiye ihtiyacı vardır: bir ad, bir sayı veya bir komut. Java'da girdi okumak için çeşitli yollar vardır; en yaygın ve verimli yöntemlerden biri BufferedReader kullanmaktır.
Bu derste BufferedReader'ın neden var olduğunu ve ne zaman kullanmanız gerektiğini öğreneceksiniz.
Girdi Nereden Gelir
Bir konsola yazdığınızda metniniz System.in üzerinden gelir. Bu, düşük seviyeli bir bayt akışıdır — size okunabilir metin yerine ham baytlar sağlar.
Bu baytları okunabilir karakterlere ve tam satırlara dönüştürmek için System.in'i yardımcı sınıflarla sarmalarız. BufferedReader, bunu kolaylaştıran sarmalayıcıdır.
Arabelleğe Almak Ne Anlama Gelir
Klavyeden veya bir dosyadan her seferinde tek bir bayt okumak yavaştır. Arabellek, aynı anda birçok karakteri tutan bir bellek parçasıdır.
BufferedReader, bu arabelleği büyük parçalar hâlinde doldurur ve ardından verileri size hızlıca iletir. Temel akışa daha az erişilmesi, özellikle büyük girdilerde daha iyi performans sağlar.
İki Katmanlı Kurulum
BufferedReader, System.in'i doğrudan okuyamaz; çünkü bu akış baytlar sağlar. Önce akışı, baytları karakterlere dönüştüren bir InputStreamReader ile sarmalarız.
System.in→ baytlarInputStreamReader→ karakterlerBufferedReader→ arabelleğe alınmış satırlar
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);Klasik Tek Satırlık İfade
Konsol girdisini okuyan neredeyse her Java programında bu satırı aynen görürsünüz. Her iki sarmalayıcıyı tek bir ifadede birleştirir.
Şunu unutmayın: İçteki InputStreamReader baytları karakterlere dönüştürür, dıştaki BufferedReader ise arabelleğe almanın yanı sıra kullanışlı readLine() yöntemini sağlar.
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));Gerekli İçe Aktarmalar
Bu sınıflar java.io paketinde bulunur; bu nedenle onları dosyanızın en üstünde içe aktarmanız gerekir.
Girdi okuma işlemi başarısız olabilir, bu nedenle yöntemler IOException fırlatır — bunu da içe aktarmanız veya ele almanız gerekir; bu konuyu ileride inceleyeceğiz.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;BufferedReader ve Scanner Karşılaştırması
Yeni başlayanlar çoğu zaman önce Scanner ile karşılaşır. Scanner daha kullanışlıdır (sayıları doğrudan ayrıştırabilir), ancak daha yavaştır.
- Scanner: kolay ayrıştırma, daha fazla ek yük.
- BufferedReader: daha hızlıdır, tam satırları okur; ancak sayıları kendiniz ayrıştırmanız gerekir.
Büyük girdilerde veya yarışmalı programlamada hız açısından BufferedReader öne çıkar.
Tam Bir Satırı Okuma
En önemli yöntem readLine()'dır. Kullanıcının Enter'a basmasına kadar yazdığı her şeyi okur ve bunu String olarak döndürür (satır sonu karakteri olmadan).
Daha fazla girdi yoksa readLine(), null döndürür. Bunu bir sonraki derste inceleyeceğiz.
String name = br.readLine();
System.out.println("Hello, " + name);Tam Bir Okuma Programı
İşte eksiksiz bir program. Bir satır okur ve kullanıcıyı selamlar. main üzerinde throws IOException bulunduğuna dikkat edin — öğrenme sırasında girdi hatalarının üst katmanlara iletilmesini sağlamanın hızlı bir yoludur.
Bu kod parçacığı klavye girdisi beklediği için burada otomatik olarak çalıştırılamaz; ancak geçerli bir Java programıdır.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String name = br.readLine();
System.out.println("Hi " + name);
}
}Çalıştığını Kanıtlamak İçin Girdi Gerekmez
Sarmalayıcıların var olduğunu ve derlendiğini görmek için hiçbir şey okumayan çalıştırılabilir bir sürüm aşağıda verilmiştir — yalnızca nesnenin oluşturulduğunu doğrular.
Gerçek bir uygulamada readLine() çağırırsınız; ancak bu sürüm bir ileti yazdırarak programı hemen çalıştırmanızı sağlar.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("BufferedReader is ready!");
}
}BufferedReader Ne Zaman Kullanılmalı
Şu durumlarda BufferedReader kullanın:
- çok sayıda satır veya büyük dosyalar okuyorsanız,
- hıza önem veriyorsanız,
- basit, satır satır metin okumak istiyorsanız.
Hızlı sayı ayrıştırmak istediğinizde ve girdi küçük olduğunda bunun yerine Scanner kullanın. İkisi de geçerli seçeneklerdir — doğru aracı seçin.
Hızlı Kontrol
BufferedReader kurulumunu anlayıp anlamadığınızı sınayın.
Özet
System.in'in bir bayt akışı olduğunu; bunun önce InputStreamReader (baytlardan karakterlere), ardından BufferedReader (arabelleğe alma ve readLine()) ile sarmalandığını öğrendiniz.
Arabelleğe alma performansı artırır ve BufferedReader büyük veya satır tabanlı girdilerde özellikle kullanışlıdır. Sıradaki konu: satırları ayrıntılı olarak okumak.
Sıkça Sorulan Sorular
“BufferedReader Neden Kullanılır” dersi ücretsiz mi?
Evet — “BufferedReader Neden Kullanılır” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.
“BufferedReader Neden Kullanılır” dersinde ne öğreneceğim?
Arabellekli ve arabel eksiz okumalar. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Java Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“BufferedReader Neden Kullanılır” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- BufferedReader Neden Kullanılır
- Satırları Okuma
- Girdiden Sayıları Ayrıştırma
- Akışları Güvenle Kapatma