6 Perbedaan Signifikan Antara Bufferedreader Dan Scanner Pada Java

Class BufferedReader dan Scanner merupakan dua class yang bisa dipakai untuk membaca file ataupun input dari user melalui command prompt dalam kegiatan Java. Namun, diantara keduanya ternyata terdapat perbedaan yang signifikan dan oleh sebab itu perlu untuk anda ketahui.

Satu perbedaan utama ialah bahwa BufferedReader hanya sanggup membaca String, namun Scanner bisa membaca String dan tipe data yang lainnya ibarat long, double, float, short, int. Perbedaan dalam hal fungsional ini menawarkan beberapa perbedaan lain dalam penggunaannya.

Pada kesempatan kali ini, tidak hanya akan dibahas mengenai perbedaan antara kedunya saja. Tapi, akan dijelaskan juga mengenai teladan penggunaan keduanya dalam program.

Perbedaan BufferedReader dan Scanner

Berikut ini ialah perbedaab dua class tersebut pada pemrograman Java:
  1. Class BufferedReader hanya bisa membaca String, sedangkan Scanner bisa untuk melaksanakan parse pada input dari user dan membaca tipe data long, double, float, short, int secara terpisah dari String. Bisa dikatakan bahwa Scanner ini lebih powerfull jikalau dibandingkan dengan BufferedReader.

  2. Scanner mempunyai buffer 1KB, sedangkan BufferedReader mempunyai 8KB. Ini berarti jikalau anda ingin membaca String yang panjang dari suatu file maka anda sanggup memakai BufferedReader. Namun, jikalau dibutuhkan untuk input yang pendek atau selain dari String maka Scanner bisa digunakan.

  3. Scanner ialah class yang lebih gres diperkenalkan, yaitu semenjak Java 1.5 sedangkan BufferedReader telah hadir lebih dulu pada Java 1.1

  4. Scanner memakai regular expression (regex) untuk membaca dan parse pada input text. Scanner sanggup mendapatkan delimiter yang ditentukan oleh programmer sendiri (custom delimiter) dan melaksanakan parse text pada tipe data primitif dengan method ibarat nextLong(), nextDouble(), nextFloat(), nextShort(), nextInt(). BufferedReader hanya sanggup membaca dan menyimpan String memakai method readLine().

  5. BufferedReader merupakan class yang disinkronisasi (synchronized) sedangkan Scanner tidak demikian. Oleh sebab itu, anda bisa menshare objek BufferedReader diantara beberapa thread, tapi anda tidak bisa melaksanakan ini pada Scanner. 

  6. BufferedReader lebih cepat dari pada Scanner sebab tidak memerlukan waktu untuk parse
Contoh:

package com.bahasajava.io;  import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.InputMismatchException; import java.util.Scanner;  public class BufferedReaderDanScanner {    public static void main(String[] args) {   Scanner input = new Scanner(System.in);   System.out.println("|***************************************************|");   System.out.println("  Menggunakan Scanner untuk membaca input dari user");   System.out.println("|***************************************************|");   boolean inputUser = true;      do{    try{     System.out.println("Silakan masukkan nama:");     String nama = input.nextLine();          System.out.println("Silakan masukkan umur dalam integer: ");     int umur = input.nextInt();          inputUser = false;    }    catch (InputMismatchException e){     System.out.println("Masukkan input yang sesuai!");     input.nextLine();    }   }while(inputUser);      input.close();      System.out.println("|***********************************************************|");   System.out.println("  Menggunakan BufferedReader untuk membaca file text");   System.out.println("|***********************************************************|");      try {    FileReader fileReader = new FileReader("C:/bahasajavacom/myFile.txt");    BufferedReader bufferedReader = new BufferedReader(fileReader);    System.out.println("File anda mempunyai baris teks sebagai berikut: ");    try {      String baris = bufferedReader.readLine();          while (baris != null){      System.out.println(baris);      baris = bufferedReader.readLine();     }          bufferedReader.close();     fileReader.close();         } catch (IOException e){     e.printStackTrace();      }    } catch (FileNotFoundException e) {     e.printStackTrace();   }  } } 

Contoh output:

Class BufferedReader dan Scanner merupakan dua class yang bisa dipakai untuk membaca fil 6 Perbedaan Signifikan Antara BufferedReader dan Scanner Pada Java

Dari teladan tersebut, bisa disimpulkan begitu mudahnya Scanner membaca tipe data String dan juga integer dan juga bagaimana class BufferedReader dengan simpel membaca text dari suatu file text dengan simpel.



Class Mana Yang Akan Anda Gunakan?


Itulah perbedaan antara BufferedReader dan Scanner. Kaprikornus gunakan Scanner saat anda ingin menangani input yang terdiri dari String ataupun tipe data numerik ibarat double, float, int dan sebagainya. Sebaliknya, gunakan BufferedReader saat anda ingin membaca text tanpa parsing, dan sebab mempunyai buffer yang tinggi, maka BufferedReader sanggup juga dipakai untuk membaca String yang panjang pada kegiatan Java.

Belum ada Komentar untuk "6 Perbedaan Signifikan Antara Bufferedreader Dan Scanner Pada Java"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel