Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Kita dapat mengkombinasikan stream ke dalam suatu mata rantai untuk mencapai operasi input dan output yang lebih advance. Sebagai contoh, membaca byte satu per satu dari sebuah file adalah hal yang lambat. Adalah lebih cepat membaca suatu blok data yang lebih besar dari disk dan kemudian melakukan iterasi melalui blok tersebut byte per byte-nya. Untuk mencapai buffering kita dapat mengurung InputStream
ke dalam suatu BufferedInputStream
. Berikut contohnya :
InputStream input = new BufferedInputStream( new FileInputStream("/home/rezaervani/Documents/data/input")); ...
Buffering dapat juga diterapkan ke OutputStream
‘s sehingga batching yang menulis ke disk (atau stream terkait) menjadi potongan yang lebih besar. Hal ini dapat mempercepat proses output pula.
Buffering hanyalah satu efek yang dapat kita capat dengan mengkombinasi stream. Kita juga dapat mengurung InputStream
dalam suatu PushbackStream
. Dengan cara tersebut kita dapat mendorong data kembali ke stream untuk dibaca ulang nantinya. Hal ini terkadang membantu saat melakukan parsing.
Ada beberapa efek lain yang dapat dicapai dengan mengkombinasikan stream input dan output ke dalam satu mata rantai. Kita bahkan dapat menulis class stream kita sendiri untuk melakukan wrap class stream strandar yang ada di Java. Dengan demikian kita dapat membuat efek atau filter kita sendiri.
Leave a Reply