Lompat ke konten Lompat ke sidebar Lompat ke footer

Perbedaan Antara Scanner dan BufferedReader Java

Pada program java, Scanner dan BuffredReader adalah kelas sumber daya yang menyediakan cara untuk membaca nilai input file. Class Scanner Java merupakan teks pembaca sederhana yang dapat melakukan parsing tipe data primitif dan nilai string. Class ini secara internal menggunakan ekspresi reguler untuk membaca berbagai tipe data berbeda ketika class BufferedReader lainnya sedang membaca teks dari sebuah aliran input karakter tunggal, dimana buffer karakter untuk menyediakan pembacaan urutan karakter yang efisien.

Perbedaan Antara Scanner dan BufferedReader Java
Perbedaan Antara Scanner dan BufferedReader Java


Perbedaan eksentriknya terletak pada pembacaan berbagai cara mengambil masukan melalui metode next() yang dibenarkan dalam program di bawah ini melalui kumpulan masukan yang serupa.

Contoh:

// Program Java untuk

// mengilustrasikan class

// Scanner.


// Mengimpor class Scanner

// dari package java.util.

import java.util.Scanner;


// Main class

class MKN {


// Method driver Main

public static void main(String args[])

{


// Menciptakan object class

// scanner untuk membaca input

// keyboard.

Scanner scn = new Scanner(System.in);

System.out.println("Enter an integer");


// Menggunakan nextInt() untuk

// parsing nilai integer.

int a = scn.nextInt();

System.out.println("Enter a String");


// Menggunakan nextLine()

// untuk parsing nilai string.

String b = scn.nextLine();


// Menampilkan nama dan usia.

System.out.printf("You have entered:- " 

+

+ " "

+ "and name as " 

+ b);

}


}



Contoh:

// Program Java untuk

// mengilustrasikan class

// BufferedReader.


// Mengimport class yang

// dibutuhkan.

import java.io.*;


// Main class

class MKN {


// Method Driver Main

public static void main(String args[])

throws IOException

{


// Menciptakan object dari

// class didalam method

// main().

BufferedReader br = new BufferedReader(

new InputStreamReader(System.in));

System.out.println("Enter an integer");


// Mengambil input integer.

int a = Integer.parseInt(br.readLine());

System.out.println("Enter a String");

String b = br.readLine();


// Mencetak nilai entitas

// input.

System.out.printf("You have entered:- " 

+ a

+ " and name as " 

+ b);

}


}


Penjelasan: Pada class Scanner, jika dilakukan pemanggilan method nextLine() setelah salah satu dari tujun method nextXXX(), maka nextLine() tidak akan membaca nilai dari konsol dan kursor juga tidak akan menuju ke konsol, atau akan melewatinya ke tahap selanjutnya. Method nextXXX() terdiri dari nextInt(), nextFloat(), nextByte(), nextShort(), nextDouble(), nextLong(), dan next().

Sedangkan pada class BufferReader tidak terdapat tipe data seperti pada permasalah program sebelumnya. Permasalahan tersebut hanya muncul dari class Scanner, karena method nextXXX() mengabaikan karakter baris baru dan hanya membaca sampai karakter baris baru pertama. Jika digunakan satu pemanggilan lagi menggunakan method nextXXX() dan nextLine(), maka permasalahan tersebut tidak akan muncul karena nextLine() akan mengambil karakter baris baru tersebut.

Perbedaan Utama antara Class Scanner dan BufferedReader pada Java
  • BufferedReader akan sinkron selama Scanner tidak. BufferedReader harus digunakan jika sedang bekerja dengan menggunakan multipe threads.
  • BufferedReader memiliki sebuah memori buffer yang lebih besar dan signifikan lebih dari Scanner.
  • Scanner memiliki sebuah buffer (1KB char buffer) dibandingkan dengan BufferedReader (buffer 8 KB byte), tapi itu lebih dari cukup.
  • BufferedReader sedikit lebih cepat dibandingkan dengan Scanner karena Scanner melakukan penguraian data masukan dan BufferedReader hanya membaca urutan karakter.


Artikel ini didedikasikan kepada: Shintia Apriliana, Siwi Nugrahaning Widhi, Sonyadi Kurniatama, Susanti Septika Avian, dan Syifa Desita Suwandi.

5 komentar untuk "Perbedaan Antara Scanner dan BufferedReader Java"

  1. Apa perbedaan antara class Scanner dan Class bufferedReader Java?

    BalasHapus
    Balasan
    1. bufferedReader merupakan class Java yang lebih cocok untuk membaca file dengan string yang panjang, sedangkan class Scanner lebih cocok untuk membaca nilai input pengguna yang berukuran kecil yang berasal dari command prompt.

      Hapus
    2. bufferedReader Java merupakan class yang dapat disinkronkan, sendangkan class Scanner tidak dapat disinkronkan, yang berarti user tidak dapat membagikan class Scanner ke beberapa thread lainnya pada program Java.

      Hapus
    3. Class Scanner Java merupakan class yang tidak sinkron dan tidak mendukung penggunaan thread Java, sedangkan Class bufferedReader Java merupakan class yang bersifat sinkron dan banyak digunakan dengan banyak thread.

      Hapus
    4. Class Scanner Java memecah nilai input menjadi token menggunakan pola pembatas, sedangkan class bufferedReader Java hanya membaca urutan karakter dalam porsi yang bergantung pada ukuran buffer.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -