Stream IO Lanjut Dan Tipe-Tipe Stream yang Umum Digunakan

Tujuan 
Dalam  module  sebelumnya,  Anda  telah  mempelajari  bagaimana untuk  mendapatkan input user dan memanipulasi  file-file menggunakan strea. Kini Anda  akan mempelajari lebih banyak tentang stream dan class-class stream yang lain. 

Pada akhir pembahasan, diharapkan pembaca dapat : 

1. Tahu tipe-tipe stream yang umum digunakan
2. Menggunakan class File dan methodnya
  Karakter dan Stream byte
  Input dan Output Streams
  Node dan Filter Streams
3. Menggunakan class-class Input/Output yang berbeda
  Reader
  Writer
  InputStream
  OutputStream
4. Memahami konsep dari stream chaining
5. Mendefinisikan serialisasi
6. Memahami penggunaan dari kata kunci transient
7. Menulis dan membaca dari sebuah object stream

Tipe-Tipe Stream yang Umum Digunakan :

Stream Karakter dan Byte  
Seperti yang telah disebutkan sebelumnya, secara umum ada dua tipe dari stream, yaitu stream  karakter dan byte.  Kita  hanya    mengulang  perbedaan  mendasar  antara keduanya.  Stream  byte  adalah  abstraksi file atau  alat  untuk  data  biner  sedangkan stream karakter adalah untuk karakter Unicode. 

Class InputStream adalah abstraksi class root untuk semua input stream byte sedangkan class OutputStream adalah  class  root abstraksi dari semua  output stream byte. Untuk stream  karakter,  superclasss  yang sesuai  dari  semua  class-class  secara  berturut-turut adalah  class  Reader  dan  the Writer.  Kedua  class-class  ini  adalah  abstraksi  class-class untuk membaca dan menulis stream karakter. 

Input dan Output Stream 
Stream juga dikategorikan berdasarkan apakah mereka digunakan untuk membaca atau menulis stream.Walaupun  ini sudah  cukup nyata, Anda diperbolehkan untuk membaca dari input stream tapi tidak menulisnya. Di lain pihak, Anda diperbolehkan untuk menulis output streams tapi tidak membacanya. 
Class  InputStream  dan  class  Reader  adalah  superclass-superclass  dari  semua  input stream. Class OutputStream dan class Writer adalah class-class root dari semua  output stream. Input  stream  juga sebagai  stream  sumber  (source  stream)  sejak  kita memperoleh informasi dari stream ini. sementara itu output stream disebut juga stream hasil(sink stream). 

Node dan Stream Filter 
Kini package  java.io membedakan  antara node dan  stream  filter. Sebuah stream node adalah  sebuah stream  dengan  fungsi  dasar berupa  fungsi membaca  atau menulis  dari sebuah  lokasi  khusus  seperti pada  disk  atau  dari  jaringan.  Tipe-tipe dari  stream node terdiri atas file, memory dan jalur data. Stream filter, di lain pihak, diletakkan pada layer stream  node  diantara  threads  atau  proses  untuk menyediakan fungsi  tambahan  yang tidak  dapat  ditemukan dalam  stream node  oleh  stream  node  itu sendiri.Penambahan  lapisan pada sebuah stream node disebut dengan stream chaining. 
Sesi ini berturut-turut mempunyai sebuah tujuan dari class-class stream yang berbeda. Untuk melengkapi daftar dari class-class ini, lihatlah pada dokumentasi Java's API.

Class File 
Walaupun class File bukan merupakan class stream, ini sesuatu yag penting bahwa kita mempelajari  ini sejak  class-class  stream  merupakan  file-file  yang  telah  dimanipulasi. Class  adalah  sebuah  perwakilan dari  abstraksi  dari  file-file  nyata  dan  nama  path direktori. Untuk  meng-instantiate  sebuah  object  File, Anda  dapat  menggunakan  constructor berikut ini: