Pinned

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.

Tidak ada komentar

Hubungi admin melalui Wa : +62-896-2514-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 -