BufferedReader Alternatifi
Daha hızlı konsol okuma
BufferedReader Alternatifi, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 4. 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.
Daha Hızlı Bir Okuyucu
Scanner kullanışlıdır ancak büyük girdilerde görece yavaştır. Çok miktarda girdi okumak için java.io paketindeki BufferedReader çok daha hızlıdır; çünkü aynı anda büyük parçalar okur.
BufferedReader Oluşturma
System.in çevresinde bir InputStreamReader oluşturup bunu bir BufferedReader içine yerleştirin. Örneklerin yazılmış bir girdi olmadan çalışması için burada StringReader kullanıyoruz.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new StringReader("Hello"));
System.out.println(reader.readLine());
reader.close();
}
}readLine Bir String Döndürür
readLine(), satır sonlandırıcısı olmadan tek bir satırın tamamını String olarak okur. Scanner'ın aksine her zaman metin döndürür; bu nedenle sayıları kendiniz ayrıştırmanız gerekir.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new StringReader("first\nsecond"));
System.out.println(reader.readLine());
System.out.println(reader.readLine());
reader.close();
}
}Girdi Sonunda Boş Değer Döner
Daha fazla girdi kalmadığında readLine(), null döndürür. Bu, okumayı durdurmanız gerektiğini belirten işarettir.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new StringReader("one line"));
System.out.println(reader.readLine());
System.out.println(reader.readLine());
reader.close();
}
}Tüm Satırları Okuma
Girdinin her satırını işlemek için readLine() değeri null olmadığı sürece döngüyü sürdürün.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new StringReader("a\nb\nc"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println("> " + line);
}
reader.close();
}
}Sayıları Kendiniz Ayrıştırma
readLine metin verdiği için, sayıya ihtiyaç duyduğunuzda Integer.parseInt ile dönüştürün.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new StringReader("42"));
int n = Integer.parseInt(reader.readLine().trim());
System.out.println(n * 2);
reader.close();
}
}Bir Satırı Belirteçlere Ayırma
Tek bir satırdan birden fazla sayı okumak için satırı split ile ayırın ve her parçayı ayrıştırın.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new StringReader("10 20 30"));
String[] parts = reader.readLine().split(" ");
int sum = 0;
for (String p : parts) {
sum += Integer.parseInt(p);
}
System.out.println(sum);
reader.close();
}
}Denetimli İstisnalar
readLine, denetimli bir IOException bildirdiği için ya throws IOException bildirimi yapmalı ya da çağrıyı bir istisna yakalama bloğuna almalısınız. Scanner bunu gerektirmez.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new StringReader("data"));
System.out.println(reader.readLine());
reader.close();
} catch (IOException e) {
System.out.println("Read error");
}
}
}Kaynakları Otomatik Yönetme
Bir istisna oluşsa bile okuyucunun otomatik olarak kapanması için kaynakları otomatik yöneten try yapısını kullanın.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
try (BufferedReader reader = new BufferedReader(new StringReader("auto-closed"))) {
System.out.println(reader.readLine());
}
}
}Gerçek Bir System.in Örneği
Gerçek klavye girdisi için System.in çevresinde bir okuyucu oluşturun. Bu kodu yerel olarak çalıştırın, bir satır yazın ve Enter tuşuna basın.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text: ");
String input = reader.readLine();
System.out.println("You typed: " + input);
}
}Scanner ile BufferedReader Karşılaştırması
Kolaylık ve basit sayı ayrıştırma için Scanner seçin. Büyük girdilerde hız için BufferedReader seçin; ancak IOException işlemlerini kendiniz yapmanız ve sayıları kendiniz ayrıştırmanız gerekir.
Hızlı Kontrol
BufferedReader bilginizi sınayın.
Özet
BufferedReader seçeneğini öğrendiniz:
System.inöğesini önceInputStreamReader, ardındanBufferedReaderiçine yerleştirinreadLine()satırın tamamını, girdi sonunda isenulldöndürür- Sayıları
Integer.parseIntvesplitile kendiniz ayrıştırın - Denetimli
IOExceptionfırlatır; bu nedenle onu işleyin veya bildirin - Büyük ve performans açısından kritik girdilerde Scanner yerine bunu tercih edin
Sıkça Sorulan Sorular
“BufferedReader Alternatifi” dersi ücretsiz mi?
Evet — “BufferedReader Alternatifi” 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 Alternatifi” dersinde ne öğreneceğim?
Daha hızlı konsol okuma 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 4. dersidir.
“BufferedReader Alternatifi” 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
- Scanner ile Girdi Okuma
- Sayıları ve Satırları Okuma
- Kullanıcı Girdisini Doğrulama
- BufferedReader Alternatifi