Halo semuanya, hari ini insyaallah saya bakal update blog besar-besaran, hahaha. Maklumlah ada tugas dari guru JAVA nih. Kali ini saya akan lebih memperjelas tentang Stream I/O yang sudah pernah saya posting di sini.
- Pengenalan Stream IO
Sistem IO di Java adalah bagian dari library Java yang bertugas menangani input dan output dalam sebuah program Java. Input dan output ini bentuknya bisa bermacam-macam, di antaranya:
- Menangani input dan output dari dan ke standar output
- Menangani operasi file (membaca atau menulis file)
- Memproses data yang masuk melalui soket, dll
Arsitektur library IO di Java dirancang sedemikian rupa sehingga memudahkan dilakukannya ekstensi terhadap library yang sudah ada. Akan tetapi, rancangan tersebut membuat banyak orang yang baru belajar Java menjadi agak sulit untuk memahami sistem IO ini. Di post ini saya akan mencoba menjelaskan dasar dari sistem IO ini.
Pada dasarnya, membaca atau menulis IO itu adalah melakukan operasi pembacaan dan penulisan array of byte. Untuk urusan input, kelas dasar yang digunakan adalah java.io.InputStream, sementara untuk urusan output yang digunakan adalah kelas java.io.OutputStream. Kedua kelas tersebut merupakan kelas abstrak yang akan menjadi kelas dasar dalam IO di Java. Kelas-kelas yang mengimplementasikan InputStream antara lain AudioInputStream untuk membaca file dalam format audio, ByteArrayInputStream untuk membaca input dalam format byte array.
Walaupun sebenarnya operasi IO adalah operasi pembacaan dan penulisan array of byte, akan tetapi seringkali kita butuh untuk membaca dan menulis dalam format teks. Untuk lebih memudahkan dalam melakukan hal tersebut, Java menyediakan kelas abstrak Reader untuk melakukan operasi pembacaan stream dalam format teks dan kelas abstrak Writer untuk melakukan penulisan dalam format teks. Kelas-kelas yang mengimplementasikan kelas Reader antaranya InputStreamReader, BufferedReader, dan FileReader.
- Konsep Dasar
Stream IO
Semua data di Java dibaca dan ditulis dengan menggunakan stream. Stream adalah representasi abstrak dari aliran data yang berjalan dari sumber (input stream) ke tujuan (output stream).
Contoh:
- Membaca dan menulis file di dan ke harddisk
- Membaca dan menulis teks ke console.
- Membaca dan menulis melalui network
I/O Streams
Untuk membaca, program membuka stream pada sumber ( file, memory, socket) dan membaca informasi secara sekuensial. Untuk menulis, program mengirim informasi ke tujuan dengan cara membuka stream tujuan, selanjutnya menulis informasi secara sekuensial.
Cara menggunakan stream
Prosedur penggunaan byte stream dan character stream sama
Input stream
- Membuat objek yg berasosiasi dengan data source Contoh : FileInputStream
- Membaca informasi dari stream dengan menggunakan method objek tersebut Contoh: read()
- Bila selesai, panggil method close.
Output Stream
- Membuat objek yg berasosiasi dg data destination. Contoh : BufferedWriter
- Menulis informasi ke stream tujuan dg menggunakan method objek tersebut. Contoh: write()
- Bila selesai, panggil method close.
InputStream and OutputStream Classes
Level tertinggi pada hirarki package java.io adalah dua abstract class: InputStream dan OutputStream. Keduanya langsung dibuat dengan meng- extend class Object. Class InputStream dan OutputStream mempunyai beberapa method dasar untuk membaca dan menulis bytes.
InputStream dan OutputStream
InputStream dan OutputStream adalah abstract class untuk stream I/O, yaitu untuk membaca dan menulis data dari dan ke file. Untuk membaca digunakan class yang mengimplementasikan InputStream, contoh : FileInputStream. Untuk menulis digunakan class yang mengimplementasikan OutputStream, contoh : FileOutputStream.
Hirarki Class InputStream dan OutputStream
InputStream
- FileInputStream
- ByteArrayInputStream
- FilterInputStream
- DataInputStream
- BufferedInputStream
- PushbackInputStream
- ObjectInputStream
- PipedInputStream
- SequenceInputStream
OutputStream
- FileOutputStream
- ByteArrayOutputStream
- FilterOutputStream
- DataOutputStream
- BufferedOutputStream
- PrintStream
- ObjectOutputStream
- PipedOutputStream
- Contoh Program
Berikut ini adalah contoh program Stream IO :
Ini adalah syntax yang menggunakan class FileOutputStream untuk menulis File.
Itu tadi adalah posting dari saya. Bila ada kekurangan atau kesalahan mohon dimaafkan, Thanks.
0 komentar:
Posting Komentar