Tentang Java IO

Tanpa bisa berinteraksi dengan dunia lain, suatu program tidak ada gunanya. Interaksi suatu program dengan dunia lain sering disebut input/output atau I/O. Salah satu kemajuan terbesar dalam sejarah pemrograman adalah adanya konsep (abstraksi) untuk memodelkan perangkat I/O. Dalam Java, abstraksi ini disebut dengan aliran (stream).

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.

Java IO

  • Java IO dibutuhkan ketika kita membaca dan menulis, baik ditampilkan pada layar maupun disimpan pada file
  • Dalam pemrograman jaringan, Java IO dibutuhkan ketika kita hendak mengirimkan byte data maupun membaca data dari server
  • Input/Output dalam Java dipaketkan dalam java.io.
  • Selain kelas-kelas, paket ini juga mengandung interface yang menangani aliran (stream) data output dan input.
  • Streams are sequences of data (whose elements may be computed on demand)
  • Ketika berhubungan dengan input/output, kita harus ingat bahwa ada dua kategori data secara umum :
    • data yang dibuat oleh mesin,
    • data yang bisa dibaca manusia.
  • Data yang dibuat mesin ditulis dengan model yang sama dengan bagaimana data tersebut disimpan di dalam komputer, yaitu rangkaian nol dan satu.
  • Data yang bisa dibaca manusia adalah data dalam bentuk rangkaian huruf

Membaca File: FileInputStream

Untuk membaca file dari disk, diperlukan langkah-langkah:
1. Definisikan nama file yang akan dibaca melalui class File, atau nama file lengkap dengan path.
2. Periksa apakah file tersebut ada (exist) dan tipenya adalah file (bukan direktori).
3. Siapkan obyek FileInputStream untuk membaca isi file.
4. Baca input dengan menggunakan method read(), dan bila tidak ada input lagi, FileInputStream memberikan indikator -1 sebagai tanda tidak ada lagi data yang akan dibaca.
5. Gunakan method close() untuk menutup FileStream.

Contoh 1: Membaca File

Program yang menggunakan class FileInputStream untuk menghitung jumlah bytes yang dibaca dari File.
Perhatikan bahwa membaca file dapat menyebabkan Exception, karena itu diperlukan penangkapan sinyal exception bila terjadi error.

import java.io.*;
 class BacaFile{
 FileInputStream fin;
 boolean eof;
 public BacaFile(){
 File f = new File ("D:\\oop\\tulis.txt");
 if (f.exists() && f.isFile()){
 System.out.println ("OK");
 }
 else{
 System.out.println("File not found");
 System.exit(-1);
 }
 try{
 fin = new FileInputStream(f);
 eof = false;
 int count = 0;
 while (!eof){
 int input = fin.read();
 if (input == -1)
 eof = true;
 else
 count++;
 }
 fin.close();
 System.out.println ("Jumlah bytes: "+count);
 }
 catch (IOException ioe){
 System.out.println("Ada error");
 }
 }
 public static void main (String [] args) {
 new BacaFile ();
 }
 }

Contoh 2 : Membaca File

Program yang membaca file dengan menggunakan FileInputStream dan menggunakan PrintStream untuk menampilkan data yang telah dibaca dari file.
Contoh PrintStream: System.out
Gunakan method println() atau print() untuk menampilkan data.

import java.io.*;
 class BacaPrintStream {
 FileInputStream fin;
public BacaPrintStream(){
 byte dataIn [];
 dataIn = new byte [1200];
 File f = new File ("D:\\oop\\tulis.txt");
 if(f.exists() && f.isFile()){
 System.out.println ("OK");
 }
 else{
 System.out.println("File not found");
 System.exit(-1);
 }
 try{
 int len;
 fin = new FileInputStream(f);
 len = fin.read (dataIn, 0, dataIn.length);
 fin.close();
 String teks = new String (dataIn, 0, len);
 System.out.println(teks);
 }
 catch (IOException ioe){
 System.out.println("Ada error");
 }
 }
 public static void main (String [] args) {
 new BacaPrintStream ();
 }
 }

Menulis File: FileOutputStream

Untuk menulis file ke disk, diperlukan langkah-langkah:

1. Definisikan nama file yang akan diupdate melalui classFile, atau nama file lengkap dengan path.
2. Siapkan obyek FileOutputStream untuk menulis isi file.
3. Gunakan method write() dan getBytes() untuk menulis data.
– write() menulis array dari byte, maka data yang akan
ditulis harus ditransfer terlebih dahulu ke array.
– untuk memindah data dari tipe String ke array gunakan
method getBytes().
4. Gunakan method flush() untuk memaksa sistem untuk mentransfer isi buffer di memori ke disk.
5. Gunakan method close() untuk menutup FileStream.

Contoh :

Program dengan menggunakan class FileOutputStream untuk menulis File.
Perhatikan bahwa menulis file dapat menyebabkan Exception, karena itu diperlukan penangkapan sinyal exception bila terjadi error.

import java.io.*;
 class TulisFile{
 FileOutputStream fout;
 String teks = "Ini tulisan yang sudah diubah";
 byte buf[];
public TulisFile(){
 File f = new File ("D:\\oop\\tulis.txt");
 try{
 fout = new FileOutputStream(f);
 buf = teks.getBytes();
 fout.write(buf);
 fout.flush();
 fout.close();
 System.out.println("Teks ditulis ke file: "+f.getName());
 }
 catch (IOException ioe){
 System.out.println ("Ada error");
 }
 }
public static void main (String [] args){
 new TulisFile();
 }
 }

Sumber : Bahan Kuliah Pemrograman Jaringan Sistem Komputer UNDIP – oleh Kurniawan Teguh Martono, ST, MT.

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