Belajar Pemrograman Java Dari Dasar

Membaca Data File Menggunakan Class Scanner Pada Program Java

Class java.util.Scanner sebelumnya telah anda ketahui penggunaanya untuk memperoleh input dari user atau untuk membaca string dan nilai primitif dari konsol. Cara kerja Scanner ini yaitu dengan memecahkan input tersebut menjadi "token" yang dibatasi oleh karakter spasi.

Ada beberapa cara sebenarnya untuk membaca file berupa text atau binary pada Java, diantaranya adalah menggunakan:

  • FileReader
  • BufferedReader
  • FileInputStream
BufferedReader sering digunakan untuk membaca text file.

Oke, kita kembali lagi ke class Scanner, yang saya yakin anda lebih familiar dibandingkan ketiga class tersebut. Scanner ini memang lebih sering digunakan dan lebih populer untuk menangani input dari user. Meskipun demikan, tentunya anda juga senang mengetahui bahwa Scanner bisa digunakan untuk membaca file.

Serupa dengan class BufferedReader, class scanner juga menyediakan buffering namun dengan ukuran yang lebih kecil yaitu 1Kb dan class ini juga dapat digunakan untuk membaca file secara baris per baris.

Ketika anda membaca input dari keyboard komputer maka anda dapat melakukannya dengan membuat objek Scanner:

Scanner input = new Scanner(System.in);

Sedangkan ketika anda ingin membaca dari sebuah file, maka anda dapat membuat objek Scanner sebagai berikut:

Scanner input = new Scanner (new File(nama file));

Method-method Pada Class Scanner

Berikut ini adalah method-method dari class Scanner yang sering digunakan:

Method Penjelasan
public String next() Mengembalikan token berikutnya dari scanner
public String nextLine() Memindahkan scanner ke baris berikutnya dan mengembalikan nilai dalam string
public byte nextByte() Mengscan token berikutnya sebagai suatu byte
public short nextShort() Mengscan token berikutnya sebagai suatu nilai short
public int nextInt() Mengscan token berikutnya sebagai suatu nilai int
public long nextLong() Mengscan token berikutnya sebagai suatu nilai long
public float nextFloat() Mengscan token berikutnya sebagai suatu nilai float
public double nextDouble() Mengscan token berikutnya sebagai suatu nilai double
boolean hasNext() Mengembalikan nilai true jika scanner memiliki token lainnya dalam input
void close Untuk menutup scanner
Scanner useDelimiter(String pattern) Method ini menetapkan pola pemisah scanner ke pola yang dibangun dari String yang ditentukan.

Contoh Penggunaan Class Scanner Untuk Membaca File Text


Misalkan terdapat file dengan nama nilai ujian.txt yang terdapat di path direktori C:/bahasa java/nilai ujian.txt. Di dalam file text tersebut terdapat data mengenai nama awal, tengah, dan akhir siswa beserta dengan nilai ujiannya.

Seperti pada gambar berikut ini:

membaca-file-nilai-ujian-dengan-class-Scanner
Kode program berikut ini akan menampilkan isi file tersebut pada konsol dengan menggunakan class Scanner.

package com.bahasajava.io;

import java.io.File;
import java.util.Scanner;

public class BacaData {
 
 public static void main(String[] args) throws Exception {
  
  //Membuat sebuah objek File
  File file = new File("C:/bahasa java/nilai ujian.txt");
  
  //Mengecek apakah file tersebut ada?
  boolean cekFile = file.exists();
  System.out.println("Apakah file tersebut ada? " + cekFile);
  
  //Membuat objek Scanner untuk file
  Scanner input = new Scanner(file);
  
  //Membaca data dari file
  while(input.hasNext()) {
   String namaAwalSiswa = input.next();
   String namaTengahSiswa = input.next();
   String namaAkhirSiswa = input.next();
   
   double nilaiUjian = input.nextDouble();
   
   //Menampilkan data file pada konsol
   System.out.println(namaAwalSiswa + " " + namaTengahSiswa + " " 
   + namaAkhirSiswa + " " + nilaiUjian);
  }
  
  //Menutup file
  input.close();
 }

}

Agar Scanner bisa membaca data dari sebuah file maka anda harus membuat objek dari class java.io.File dengan menggunakan constructor new File (nama file). Kemudian menggunakan new Scanner(File) untuk membuat sebuah Scanner untuk file.

Exception bisa saja terlempar ketika memanggil constructor new Scanner(File), oleh karena itu method main mendeklarasikan throws Exception.

Pada kode juga terdapat while loop yang akan melakukan perulangan untuk membaca nama awal, tengah, dan akhir dari siswa beserta nilainya.

Selanjutnya bagian terakhir adalah pernyataan input.close(). Sebenarnya anda tidak perlu untuk menutupnya. Namun, ini adalah praktek yang bagus untuk melepaskan sumberdaya yang dimiliki oleh file tersebut.

Output:
Apakah file tersebut ada? true
Nazia Putri Arnita 98.27
Muhammad Syuja Althafarizki 95.33
Paulia Anjarina Putri 94.56
Zouza Putri Gumelar 93.56


Share on Facebook
Share on Twitter
Share on Google+

Artikel Menarik Lainnya :