Alternatif BufferedReader
Pembacaan konsol yang lebih cepat
Alternatif BufferedReader adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Pembaca yang Lebih Cepat
Scanner praktis, tetapi relatif lambat untuk masukan berukuran besar. Untuk pembacaan dalam jumlah besar, BufferedReader dari java.io jauh lebih cepat karena membaca potongan besar sekaligus.
Membuat BufferedReader
Bungkus InputStreamReader di sekitar System.in di dalam BufferedReader. Di sini, kami menggunakan StringReader agar contoh dapat berjalan tanpa masukan yang diketikkan.
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 Mengembalikan String
readLine() membaca satu baris penuh sebagai String, tanpa penanda akhir baris. Berbeda dari Scanner, metode ini selalu mengembalikan teks, sehingga Anda harus menguraikan angka sendiri.
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();
}
}Akhir Masukan Adalah null
Ketika tidak ada lagi masukan, readLine() mengembalikan null. Inilah tanda untuk berhenti membaca.
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();
}
}Membaca Semua Baris
Lakukan perulangan selama readLine() bukan null untuk memproses setiap baris masukan.
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();
}
}Menguraikan Angka Sendiri
Karena readLine memberikan teks, konversikan teks tersebut dengan Integer.parseInt ketika Anda memerlukan angka.
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();
}
}Memisahkan Satu Baris Menjadi Token
Untuk membaca beberapa angka dari satu baris, pisahkan baris tersebut dengan split, lalu uraikan setiap bagiannya.
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();
}
}Pengecualian yang Harus Ditangani
readLine mendeklarasikan IOException yang harus ditangani, sehingga Anda harus mendeklarasikan throws IOException atau membungkus pemanggilan tersebut dalam try-catch. Scanner tidak memerlukannya.
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");
}
}
}Try dengan Sumber Daya
Gunakan try dengan sumber daya agar pembaca ditutup secara otomatis, bahkan jika terjadi pengecualian.
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());
}
}
}Contoh System.in Nyata
Untuk masukan dari papan ketik sungguhan, bungkus System.in. Jalankan ini secara lokal, ketik satu baris, lalu tekan Enter.
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 Dibandingkan dengan BufferedReader
Pilih Scanner karena praktis dan mudah digunakan untuk menguraikan angka. Pilih BufferedReader untuk kecepatan saat menangani masukan besar, dengan konsekuensi bahwa Anda harus menguraikan dan menangani IOException sendiri.
Uji Cepat
Uji pengetahuan Anda tentang BufferedReader.
Rangkuman
Anda telah mempelajari alternatif BufferedReader:
- Bungkus
System.indalamInputStreamReader, laluBufferedReader readLine()mengembalikan satu baris penuh, ataunulldi akhir masukan- Uraikan angka sendiri dengan
Integer.parseIntdansplit - Metode ini melempar
IOExceptionyang harus ditangani atau dideklarasikan - Lebih baik gunakan metode ini daripada
Scanneruntuk masukan besar yang membutuhkan kinerja tinggi
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Alternatif BufferedReader” gratis?
Ya — teks lengkap “Alternatif BufferedReader” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Alternatif BufferedReader”?
Pembacaan konsol yang lebih cepat Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Alternatif BufferedReader” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membaca Input dengan Scanner
- Membaca Bilangan dan Baris
- Memvalidasi Input Pengguna
- Alternatif BufferedReader