Home > Java > Java I/O Stream

Java I/O Stream

September 10, 2012 Leave a comment Go to comments

Stream dapat didefinisikan sebagai sequence data baik dari sumber data atau tujuan data. Pada Java I/O stream terdapat dua buah stream yang digunakan yaitu stream karakter dan stream byte. Sesuai dengan namanya, strem byte digunakan untuk menyimpan informasi data dalam bentuk byte. Sedangkan stream karakter digunakan untuk proses I/O yang melibatkan data- data dalam bentuk karakter. Stream karakter menggunakan karakter Unicode. Dalam Java, stream didefinisikan dengan menggunakan empat kelas abstrak yaitu:  InputStream, OutputStream, Reader, Writer.

InputSream dan OutputStream merupakan kelas abstrak yang dirancang sebagai kelas induk untuk kelas – kelas yang termasuk dalam kategori stream byte. Sedangkan Reader dan Writer merupakan kelas abstrak yang akan diturunkan menjadi kelas baru dalam kategori stream karakter. Melalui proses pewarisan (inheritance), semua kelas yang diturunkan dari kelas InputStream dan Reader memiliki method read() untuk melakukan pembacaan data. Sedangkan kelas yang diturunkan dari kelas OutputStream dan Writer memiliki method write() yang digunakan untuk melakukan penulisan data.

Menggunakan kelas Byte stream atau Character stream? Dari referensi yang saya baca, jika kita bekerja dengan data bukan binary, maka sebaiknya kita menggunakan kelas-kelas yang diturunkan dari kelas Reader dan Writer (Character stream).

Contoh 1: Membaca input data karakter dari console

package io_readcharacter;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
/**
*
* @author Taeyeon
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
char inputChar;
System.out.println("Masukkan sembarang karakter: ");

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
inputChar = (char)bufferedReader.read();

System.out.println("Karakter yang diinputkan :"+ inputChar);
}

}

Contoh 2: Membaca input data string dari console

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class IO_ReadString {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
String nameString;
System.out.println("Masukkan nama Anda: ");

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
nameString = bufferedReader.readLine();

System.out.println("Nama Anda :"+ nameString);
}

}

Contoh 3: Membaca input data numeric dari console

package io_readnumeric;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
*
* @author Taeyeon
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
int inputNumber;
String temp;

System.out.println("Masukkan angka: ");

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
temp = bufferedReader.readLine();
inputNumber = Integer.parseInt(temp);

System.out.println("Angka yang dimasukkan :"+ inputNumber);
}

}

Dari ketiga contoh diatas, semua menggunakan kelas InputStreamReader. Kelas tersebut merupakan inheritance dari kelas abstrak Reader yang digunakan untuk melakukan convert dari byte stream ke character stream dalam hal ini System.in . Untuk mengetahui lebih detail kelas tersebut dapat dibaca disini

Referensi : Berbagai sumber.

Semoga bermanfaat.

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: