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
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() | Memindahkan scanner ke baris berikutnya dan mengembalikan nilai dalam string |
boolean hasNext() | Mengembalikan nilai true jika scanner memiliki token lainnya dalam input |
public String next() | Mengembalikan token berikutnya dari scanner |
public byte nextByte() | Mengscan token berikutnya sebagai suatu byte |
public double nextDouble() | Mengscan token berikutnya sebagai suatu nilai double |
public float nextFloat() | Mengscan token berikutnya sebagai suatu nilai float |
public int nextInt() | Mengscan token berikutnya sebagai suatu nilai int |
public long nextLong() | Mengscan token berikutnya sebagai suatu nilai long |
public short nextShort() | Mengscan token berikutnya sebagai suatu nilai short |
Scanner useDelimiter(String pattern) | Method ini menetapkan pola pemisah scanner ke pola yang dibangun dari String yang ditentukan. |
void close | Untuk menutup scanner |
Contoh Penggunaan Class Scanner Untuk Membaca File Text
Misalkan terdapat file dengan nama nilai ujian.txt yang terdapat di path direktori /belajar/Lab-Java/nbproject$/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:
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
sumber :