1.
INPUT
DAN OUTPUT STREAM
Pada program-program yang
membutuhkan data-data eksternal, maka diperlukan suatu proses input dan ouput
(I/O), dimana pada Java dukungan proses I/O ini sudah disediakan dalam paket
java.io.
Program Java melakukan proses I/O
melalui stream, yaitu sebuah abstraksi yang dapat memberikan atau mendapatkan
informasi. Stream dapat dihubungkan dengan peralatan fisik yang terdapat dalam
sistem I/O Java, seperti keyboard, file, layar console, soket jaringan, dan
lainnya.
v Stream ada dua jenis, yaitu:
- Stream byte digunakan untuk memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner.
- Sedangkan stream karakter pada proses I/O melibatkan data-data berbentuk karakter, misalnya proses baca/tulis ke suatu file teks, dengan menggunakan karakter Unicode.
v Pendefinisian stream dilakukan
dengan menggunakan 2 kelas abstrak, yaitu :
- InputStream dan OutputStream, sebagai superclass untuk kelas-kelas dalam kategori stream byte, dan kelas abstrak Reader dan Writer untuk kategori stream karakter.
- Melalui proses pewarisan (inheritance), semua kelas yang diturunkan dari InputStream maupun Reader akan memiliki method read(), yang digunakan dalam proses pembacaan data.Untuk proses penulisan data digunakan method write() dalam semua kelas yang diturunkan dari OutputStream maupun Writer.
v Kelas System juga mendefinisikan
tiga variabel stream, yaitu in, out, dan err, dimana data-datanya
dideklarasikan sebagai public atau static.
- System.out adalah stream output standar dengan default layar console.
- System.in adalah objek dari tipe PrintStream, defaultnya berupa keyboard dan mengacu pada stream input standar.
- Sedangkan pada stream error standar terdapat System.err yang secara default berupa layar console.
v InputStream
Input
Stream merupakan class abstrak sehingga
tidak dapat secara langsung menggunakan class ini .Subclass-subclass
dari class ini yang akan memberikan fungsi khusus yang bervariasi.
Dua
method utama dari Input Stream adalah :
a.
Read()
method ini digunakan
untuk membaca stream.
b.
Close()
method ini digunakan untuk
menutup koneksi input stream.
v OutputStream
OutputStream
merupakan class abstrak tan tidak dapat langsung digunakan dalam program .anda dapat
menggunakan subclass dari outputstream dalam program.
Sebagian
method-method OutputStream adalah:
a.
Void
close()
menutup output stream
yang aktif dan melepaskan sumber daya terkait dengan stream tersebut.
b.
Void
flush()
melakukan flush
output stream dan memaksa semua byte buffer untuk dituliskan keluar.
c.
Void
write(byte[] b)
menulis sebanyak b.legth dari
byte array ke output stream.
Data Output Stream dan Data Input Stream
v Sebagian method DataOutputStream
:
writeDouble:
berfungsi menuliskan data bertipe
double ke output stream.
writeInt:
berfungsi menuliskan data integer ke
Output Stream.
writeBoolean:
berfungsi menuliskan data Boolean ke
Output Stream.
readDouble():
membaca data bertipe double.
v Sebagian method DataOutputStream
:
reading():
membaca data integer.
readBoolean():
membaca data Boolean.
Melakukan
Input
Dalam
Java, input dilakukan melalui pembacaan terhadap stream System.in. Untuk
mendapatkan karakter-karakter yang dimasukkan melalui keyboard ke dalam layer
console, diperlukan membungkus System.in di dalam objek BufferedReader. Hal ini
dilakukan untuk membentuk stream karakter.bentuk constructor dari
BufferedReader sebagai berikut,
BufferedReader(Reader
inputReader)
inputReader
adalah stream yang akan dihubungkan dengan objek dari kelas BufferedReader .
Karena Reader merupakan kelas abstrak, maka perlu dicari kelas turunannya yang
berupa kelas konkrit. Salah satunya adalah kelas InputStreamReader, yang dapat
mengonversi byte ke karakter. Sedangkan agar objek dari InputStreamReader dapat
dihubungkan dengan System.in, perlu digunakan bentuk constructor.Sehingga untuk
membuat objek BufferedReader yang dapat terhubung dengan keyboard, perlu
digunakan kode berikut:
InputStreamReader isr = new
InputStreamReader(System.in);
BufferedReader br = new
BufferedReader(isr);
Menampilkan Output
Untuk
menampilkan output ke layar console, dapat dengan mudah dilakukan melalui
method print() maupun println(). Untuk media output lainnya (misalnya:
file),method yang digunakan untuk melakukan proses ini adalah write().
Selain
menggunakan System.out untuk menulis ke layar console, Java jugamenyediakan
kelas PrintWriter untuk keperluan yang sama. PrintWriter adalah salahsatu kelas
stream yang berbasis pada data karakter (character-based).
Contoh
kodingan :
import java.io.*;
public class tes {
public static void main(String[]args) throws IOException {
System.out.print("Masukkan sembarang karakter : ");
char ch;
InputStreamReader isr = new InputStreamReader ystem.in);
BufferedReader br = new BufferedReader(isr);
ch = (char) br.read();
System.out.println("Karakter yang dimasukkan adalah " + ch );
}
}
output:
Masukkan sembarang karakter : 2
Karakter yang dimasukkan adalah 2
2. Channel
Channels diibaratkan seperti Open
Connection yang terhubung ke suatu Entity seperti peralatan
Hardware, file, network socket, atau komponen program yang berkemampuan dalam
melakukan satu atau lebih operasi io yang berbeda. Seperti reading dan writing.
Contoh
untuk mendapatkan FileChannel
FileInputStream
fis = new FileInputStream("in.dat");
FileChannel
fc = fis.getChannel();
//
or
FileChannel
fc = new FileInputStream("in.dat").getChannel();
• Channels dapat bersifat Open dan
Closed.
Ketika
Channels bersifat Open artinya dapat dikreasikan , sedangkan jika
Channel telah Closed (tertutup) maka akan tetap Closed. Ketika Channel
telah tertutup (closed), segala permintaan untuk menjalankan input dan output
akan mengakibatkan ClosedChannelException menjadi terlempar (to be thrown).
• Untuk membuktikan apakah channel
bersifat terbuka, digunkan method isOpen.
boolean isOpen()
mengembalikan jika dan hanya jika
Channel bersifat terbuka.
• ClosedChannelException exception
yang sudah diperiksa akan terlempar ketika sebuah usaha dilakukan untuk meminta
operasi IO selama Channel Closed, atau setidaknya akan menutup operasi
tersebut.
• Exception yang telah terlempar
bukan berarti bahwa channel tersebut telah ditutup. Channel yang telah ditulis
setengah, sebagai contohnya, mungkin akan tetap bisa dilihat hanya untuk
dibaca.
Beberapa
penjelasan dari beberapa fungsi channel :
• Channel Interface Merupakan
perpanjangan (extends) dari beberapa interface lainnya.
• ReadableByteChannel interface
adalah method baca yang membaca byte dari sebuah channel ke dalam buffer.
• WriteableByteChannel interface
metode tulis yang menulis byte dari sebuah channel ke dalam buffer.
• SeekableByteChannel interface
merupakan perpanjangan dari ByteChannel merupakan method untuk menanyakan dan
memodifikasi letak dan ukuran channel.
• ScatteringByteChannel dan
GatheringByteChannel interface merupakan perpanjangan dari Readable.. dan
Writeable.. Yang masing-masing method yang mengambil buffer sekaligus secara
berurutan.
3. Non
Blocking IO
Non-blocking I/O
adalah menangani koneksi yang banyak tanpa terjadi blocking I/O.
Untuk
mengangani koneksi I/O bersamaan jika kita membutuhkan high performance network
I/O seperti router/server yang harus menerima koneksi bersamaan yang banyak,
maka kita dapat menggunakan fasilitas API tersebut
Prinsip
kerja I/O ini adalah multiplexing dari koneksi I/O yang bersamaan. Beberapa
koneksi yang direpresentasikan oleh SocketChannel di-handle oleh sebuah
Selector, selector akan melakukan mekanisme baca/tulis dari tiap channel secara
serial (multiplexing) dengan cara menggambil buffer.
http://uzi-online.blogspot.com/2000/11/kuliah-algoritma-pemrograman-java.html
http://uzi-online.blogspot.com/2000/11/kuliah-algoritma-pemrograman-java.html
Online Gambling - DrmCD
BalasHapusOnline Gambling is a casino 논산 출장안마 game or gambling term. Learn how to 성남 출장마사지 play and get 보령 출장샵 started in the casino world today. We teach you how to play 광명 출장안마 and win real money playing 제주 출장안마