BufferedReader dan InputStreamReader pada Java
BufferedReader dan InputStreamReader pada Java - Class Java IO memiliki sejumlah 54 class turunan, termasuk diantaranya Class BufferedReader. Class BufferedReader pada pemrograman java digunakan untuk membaca teks berbasis karakter dari sebuah input stream. Class BufferedReader juga dapat digunakan untuk membaca baris per baris data dengan menggunakan method readLine(). method readLine() merupakan turunan dari Class Reader yang memiliki kemampuan membaca data yang cukup cepat.
Class BufferedReader mirip dengan BufferedInputStream namun tidak persis sama, perbedaan utama antara keduanya terletak pada jenis data yang dapat dibaca. Pada Class BufferedReader membaca karakter (teks) sementara pada BufferedInputStream membaca data dalam satuan byte.
Sementara itu, bentuk umum deklarasi untuk Class Java.io.BufferedReader adalah seperti yang terlihat berikut.
public class BufferedReader extends Reader
Konstruktor dan Method Class BufferedReader
Class BufferedReader pada pemrograman java memiliki 2 jenis konstruktor dan 9 macam method. Kesemuanya akan disajikan dalam bentuk tabel berikut penjelasan masing-masing konstruktor dan method.
Konstruktor Class BufferedReader
Konstruktor | Deskripsi |
---|---|
BufferedReader (Reader rd) | Digunakan untuk membuat karakter input stream dengan ukuran standar untuk sebuah input buffer |
BufferedReader (Reader rd, int size) | Digunakan untuk membuat karakter input stream dengan ukuran yang spesifik |
Method Class BufferedReader
Method | Deskripsi |
---|---|
int read ( ) | Digunakan untuk membaca karakter tunggal |
int read (char[] cbuf, int off, int len) | Digunakan untuk membaca karakter dengan ukuran tertentu dalam sebuah array |
boolean markSupported ( ) | Digunakan untuk memeriksa dukungan input stream terhadap method mark dan reset |
String readLine ( ) | Digunakan untuk membaca teks dalam sebuah baris |
boolean ready ( ) | Digunakan untuk menguji input stream yang telah siap untuk dibaca |
long skip (long n) | Digunakan untuk melewati pembacaan sebuah karakter |
void reset ( ) | Digunakan untuk mengembalikan atau mengatur ulang stream |
void mark (int readAheadLimit) | Digunakan untuk menandai posisi stream saat ini |
void close ( ) | Digunakan untuk menutup input stream dan menampilkan beberapa sumber sistem yang tergabung dalam stream |
Contoh Sederhana BufferedReader dan InputStreamReader
Membaca File dengan Class BufferedReader
Pada contoh ini, akan membuat program sederhana untuk membaca data dari file "percobaan.txt" menggunakan Class BufferedReader pada pemrograman java. Sebelumnya diasumsikan bahwa anda telah memiliki file “percobaan.txt” yang terletak pada direktori D:\\ pada komputer anda. Adapun file “percobaan.txt” berisi text atau tulisan :
Selamat Datang di Website Kelas Informatika
Berikut source code yang digunakan.
import java.io.*; public class ContohBufferedReader { public static void main(String args[])throws Exception{ FileReader fr=new FileReader("D:\\percobaan.txt"); BufferedReader br=new BufferedReader(fr); int i; while((i=br.read())!=-1){ System.out.print((char)i); } br.close(); fr.close(); } }
Output yang dihasilkan dari source code tersebut adalah sebagai berikut :
Selamat Datang di Website Kelas Informatika
Membaca Data Dari Konsol dengan InputStreamReader dan BufferedReader
Pada contoh ini kita akan mengkoneksikan Class BufferedReader dengan InputStreamReader untuk membaca data per baris yang yang diinputkan pengguna (user) dari keyboard. Berikut source code yang digunakan.
import java.io.*; public class ContohBufferedReader{ public static void main(String args[])throws Exception{ InputStreamReader r=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(r); System.out.println("Masukkan Nama Anda"); String nama=br.readLine(); System.out.println("Selamat Datang "+nama); } }
Output yang dihasilkan :
Masukkan Nama Anda
Sofi Dwi Purwanto
Selamat Datang Sofi Dwi Purwanto
Penjelasan :
Output yang dihasilkan dari program kesemuanya berjumlah 3 baris data yang tersaji dalam bentuk tulisan. Baris pertama menampilkan pesan “Masukkan Nama Anda”, output tersebut ditampilkan berdasarkan source code program (lihat pada source code baris ke-6). Tulisan “Sofi Dwi Purwanto“ merupakan input atau masukan yang di ketikkan pengguna (user) melalui keyboard. Sedangkan output “Selamat Datang Sofi Dwi Purwanto” merupakan hasil dari source code program (lihat pada source code baris ke-8).
Kami berikan contoh lain dari penerapan Class BufferedReader dan InputStreamReader. Silahkan cermati source code berikut.
import java.io.*; public class ContohBufferedReader{ public static void main(String args[])throws Exception{ InputStreamReader r=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(r); String nama=""; while(!name.equals("stop")){ System.out.println("Masukkan Data: "); nama=br.readLine(); System.out.println("Data Adalah: "+nama); } br.close(); r.close(); } }
Output yang dihasilkan :
Masukkan Data: Sofi
Data Adalah: Sofi
Masukkan Data: 177
Data Adalah: 177
Masukkan Data: stop
Data Adalah: stop
Penjelasan :
Pada source code diatas, program akan membaca dan menampilkan data yang diinputkan oleh pengguna (user). Hal tersebut akan terjadi secara berulang-ulang hingga pengguna (user) menginputkan tulisan “stop”, barulah data akan ditampilkan sekaligus mengehentikan program yang sedang berjalan.
Program Mencari Data Menggunakan Buffered Reader dan InputStreamReader
Untuk lebih memantapkan pengertian anda mengenai Class BufferedReader dan InputStreamReader, akan diberikan contoh berikutnya mengenai program untuk mencari data dengan BufferedReader dan InputStreamReader sebagai metode inputnya. Source code program dapat anda download disini.
Program tersebut akan mencari data berupa angka dari 1 - 9 berdasarkan input dari pengguna (user). Data angka 1 - 9 telah tersimpan dalam variabel “numbers” yang direpresentasikan kedalam array 2 dimensi. Pencarian angka akan mengacu kepada variabel “numbers” dengan cara menelusuri setiap indeks dan mencocokkannya dengan data yang telah diinput oleh pengguna (user). Lebih detail mengenai program ini, akan dirincikan lebih lanjut baris per baris source code pada penjelasan berikut.
import java.io.*;
mewakili importir semua kelas yang berada dalam package.
public class modif_javaio
modif_javaio merupakan deklarasi nama class. Class menggunakan akses public, sehingga class modif_javaio dapat diakses oleh class lain yang berada di luar package (kumpulan dari beberapa class).
public static void main(String args[])
mendeklarasikan method main().
BufferedReader dataIn=new BufferedReader(new InputStreamReader(System.in));
mendeklarasikan variabel bernama dataIn, dengan tipe class BufferedReader.
int[][] numbers = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
variabel yang menampung data array.
boolean foundNum = false;
inisiasi nilai awal foundNum adalah false.
try{ String a=dataIn.readLine();
menampung input keyboard dalam variabel a.
int searchNum = Integer.parseInt(a);
konversi nilai a ke integer.
for( int i=0; i<numbers.length; i++ )
perulangan dari kolom=0 sampai jumlah array dari numbers-1.
for( int j=0; j<numbers[i].length; j++ )
perulangan baris dari =0 sampai jumlah array dari numbers-1 .
if( searchNum == numbers[i][j] ){
jika nilai input berada di daftar array.
foundNum = true;
searchNum bernilai true.
break;
keluar dari perulangan.
if( foundNum ) {
jika foundNum = true.
System.out.println(searchNum + " ditemukan!" );
tampilkan searchNum ditemukan.
} else {
jika tidak ditemukan.
System.out.println(searchNum + " tidak ditemukan!");
tampilkan searchNum tidak ditemukan.
catch ( IOException e ) { System.out.println("Error!"); }
Code di atas digunakan untuk menangkap exception yang mungkin terjadi pada statement String a=dataIn.readLine().
System.exit(0);
keluar dari program.
Demikian tulisan kali ini mengenai BufferedReader dan InputStreamReader pada Java. Bagi anda yang ingin request tulisan mengenai topik tertentu yang terkait dengan teknologi informasi dan multimedia, silahkan sampikan melalui email Kelas Informatika. Semoga bermanfaat, Salam 😊
Posting Komentar untuk "BufferedReader dan InputStreamReader pada Java"