Inputoutput dan Kelas File DasarDasar InputOutput Java menyediakan

  • Slides: 31
Download presentation
Input/output dan Kelas File

Input/output dan Kelas File

Dasar-Dasar Input/Output �Java menyediakan dukungan terhadap proses Input/Output (I/O) dalam package java. io. �

Dasar-Dasar Input/Output �Java menyediakan dukungan terhadap proses Input/Output (I/O) dalam package java. io. � Di dalam package tersebut tersimpan banyak interface dan kelas yang akan memudahkan programmer melakukan pengambilan dan penyimpanan informasi ke media lain (misalnya ke suatu file)

Stream �Stream adalah sebuah abstraksi yang dapat memberikan atau mendapatkan informasi. �Stream dapat dihubungkan

Stream �Stream adalah sebuah abstraksi yang dapat memberikan atau mendapatkan informasi. �Stream dapat dihubungkan dengan peralatan fisik yang terdapat dalam sistem I/O, seperti keyboard, file, layar console, dll. �Cara kerja stream selalu sama, meskipun peralatan yang terhubung dengannya berbeda. �Kode program yang kita tulis akan sama untuk masing peralatan fisik yang terhubung dengan stream yang bersangkutan �Contohnya, programmer dapat menggunakan method dan kelas yang sama untuk melakukan penulisan teks, baik ke console maupun ke dalam file

Tipe-tipe Stream �Byte Stream memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk

Tipe-tipe Stream �Byte Stream memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner. �Character Stream digunakan untuk melakukan I/O yang melibatkan data dalam bentuk karakter, misalnya proses baca/tulis ke file berisi teks.

Kelas-kelas Stream �Stream didefinisikan dengan empat buah kelas abstrak: Input. Stream, Output. Stream, Reader,

Kelas-kelas Stream �Stream didefinisikan dengan empat buah kelas abstrak: Input. Stream, Output. Stream, Reader, Writer �Kelas Input. Stream dan Output. Stream adalah kelas abstrak yang merupakan kelas induk dari kelas yang termasuk dalam kategori byte stream �Kelas Reader dan Writer adalah kelas abstrak yang merupakan kelas induk dari kelas-kelas yang termasuk dalam kategori character stream

�Semua kelas turunan dari Input. Stream maupun Reader memiliki method read() untuk membaca data

�Semua kelas turunan dari Input. Stream maupun Reader memiliki method read() untuk membaca data �Semua kelas turunan dari Output. Stream maupun Writer memiliki method write() untuk menulis data �Kedua method tersebut adalah method abstrak

Byte Stream �Byte stream didefinisikan dengan menggunakan dua buah hirarki kelas �Urutan paling atas

Byte Stream �Byte stream didefinisikan dengan menggunakan dua buah hirarki kelas �Urutan paling atas dari hirarki tersebut adalah kelas Input. Stream dan Output. Stream �Tabel berikut memperlihatkan beberapa daftar kelas turunan dari kelas Input. Stream dan Output. Stream

Nama Kelas Keterangan Buffered. Input. Stream Input stream yang telah ter-buffer Buffered. Output. Stream

Nama Kelas Keterangan Buffered. Input. Stream Input stream yang telah ter-buffer Buffered. Output. Stream Output Stream yang telah ter-buffer Byte. Array. Input. Stream Input stream yang membaca dari array byte Byte. Array. Output. Stream Output stream yang menulis ke array byte Data. Input. Stream Input stream yang meiliki method-method untuk membaca tipe data standar yang terdapat dalam java Data. Output. Stream Out stream yang meiliki method-method untuk menulis tipe data standar yang terdapat dalam java File. Input. Stream Input stream yang membaca data dari sebuah file File. Output. Stream Output stream yang menulis data ke sebuah file Piped. Input. Stream Penyalur input Piped. Output. Stream Penyalur output Print. Stream Output stream yang berisi method println() dan print()

Character Stream �Character stream didefinisikan dengan menggunakan dua buah hirarki kelas �Urutan paling atas

Character Stream �Character stream didefinisikan dengan menggunakan dua buah hirarki kelas �Urutan paling atas dari hirarki tersebut adalah kelas Reader dan Writer �Tabel berikut memperlihatkan beberapa daftar kelas turunan dari kelas Reader dan Writer

Nama Kelas Keterangan Buffered. Reader Character stream input yang telah ter-buffer Buffered. Writer Character

Nama Kelas Keterangan Buffered. Reader Character stream input yang telah ter-buffer Buffered. Writer Character Stream output yang telah ter-buffer Char. Array. Reader membaca dari array character Char. Array. Writer menulis ke array character Input. Stream. Reader Input stream yang menerjemahkan byte ke character Otuput. Stream. Writer Out stream yang menerjemahkan karakter ke byte File. Reader membaca data dari sebuah file File. Writer menulis data ke sebuah file Piped. Writer Penyalur input Piped. Reader Penyalur output Print. Writer Output stream yang berisi method println() dan print() String. Reader Input stream yang membaca dari sebuah String. Writer Output stream yang menulis ke sebuah String

�Semua program Java otomatis mengimport package java. lang. Di dalam package ini didefinisikan sebuah

�Semua program Java otomatis mengimport package java. lang. Di dalam package ini didefinisikan sebuah kelas bernama System. Kelas ini mendefinisikan beberapa aspek yang berkaitan dengan runtime. �Kelas System mendefinisikan tiga variabel stream: in, out, err. Ketiga variabel ini didefinisikan sebagai public dan static �System. out mengacu kepada output stream standar, yang berupa console �System. in mengacu kepada input stream standar yang berupa keyboard �System. err mengacu pada stream error standar yang berupa console

Proses Input �Dalam Java, input console dilakukan dengan pembacaan terhadap stream System. in �Untuk

Proses Input �Dalam Java, input console dilakukan dengan pembacaan terhadap stream System. in �Untuk mendapatkan karakter-karakter yang dimasukkan melalui keyboard ke layar console, System. in perlu dibungkus didalam objek Buffered. Reader. �Hal ini dilakukan untuk membentuk character stream, karena sebenarnya System. in adalah byte stream

�Bentuk konstruktor dari Buffered. Reader adalah Buffered. Reader(Reader input. Reader) �input. Reader adalah stream

�Bentuk konstruktor dari Buffered. Reader adalah Buffered. Reader(Reader input. Reader) �input. Reader adalah stream yang akan dihubungkan dengan objek dari kelas Buffered. Reader yang dibuat. �Karena Reader adalah kelas abstrak, kita perlu menggunakan kelas turunannya yang berupa kelas konkrit. Salah satunya adalah Input. Stream. Reader yang dapat mengonversi byte ke character

�Agar objek dari Input. Stream. Reader dapat dihubungkan dengan System. in, perlu digunakan konstruktor

�Agar objek dari Input. Stream. Reader dapat dihubungkan dengan System. in, perlu digunakan konstruktor dengan bentuk: Input. Stream. Reader(Input. Stream is) �Pada konstruktor di atas, is dapat diisi dengan System. in, sehingga untuk membuat objek Buffered. Reader yang terhubung dengan keyboard dapat menggunakan kode: Input. Stream. Reader isr = new Input. Stream. Reader(System. in); Buffered. Reader br = new Buffered. Reader(isr);

�Untuk membaca input berupa karakter, gunakan method read() yang terdapat dalam kelas Buffered. Reader.

�Untuk membaca input berupa karakter, gunakan method read() yang terdapat dalam kelas Buffered. Reader. �Deklarasi method read() adalah sebagai berikut: int read() throws IOException

Contoh membaca input data karakter import java. io. *; class Demo. Input. Karakter {

Contoh membaca input data karakter import java. io. *; class Demo. Input. Karakter { public static void main(String[] args) throws IOException { System. out. print("Masukkan sembarang karakter: "); char ch; Input. Stream. Reader isr = new Input. Stream. Reader(System. in); Buffered. Reader br = new Buffered. Reader(isr); ch = (char) br. read(); System. out. println("Karakter yang dimasukkan adalah '" + ch + "'"); } }

Input Data String �Untuk melakukan input berupa String, gunakan method read. Line() �Deklarasi method

Input Data String �Untuk melakukan input berupa String, gunakan method read. Line() �Deklarasi method tersebut adalah String read. Line() throws IOException

Contoh Membaca Input Data String import java. io. *; class Demo. Input. String {

Contoh Membaca Input Data String import java. io. *; class Demo. Input. String { public static void main(String[] args) throws IOException { System. out. print("Masukkan nama Anda: "); String nama; Input. Stream. Reader isr = new Input. Stream. Reader(System. in); Buffered. Reader br = new Buffered. Reader(isr); nama = br. read. Line(); System. out. println("Halo " + nama + ", sudahkah Anda mengerti Java? "); }

Contoh Input Data Numerik import java. io. *; class Demo. Input. Numerik 1 {

Contoh Input Data Numerik import java. io. *; class Demo. Input. Numerik 1 { public static void main(String[] args) throws IOException { System. out. print("Masukkan sebuah bilangan bulat: "); String temp; int bilangan = 0; Input. Stream. Reader isr = new Input. Stream. Reader(System. in); Buffered. Reader br = new Buffered. Reader(isr); // input data dianggap sebagai string temp = br. read. Line(); try { // konversi dari string ke integer bilangan = Integer. parse. Int(temp); } catch (Number. Format. Exception nfe) { System. out. println("Data yang dimasukkan “+"bukan bilangan bulat"); System. exit(1); } System. out. println("Bilangan yang dimasukkan " + "adalah " + bilangan); } }

import java. io. *; class Demo. Input. Numerik 2 { public static void main(String[]

import java. io. *; class Demo. Input. Numerik 2 { public static void main(String[] args) throws IOException { System. out. print("Masukkan sebuah bilangan riil: "); String temp; double bilangan = 0; Input. Stream. Reader isr = new Input. Stream. Reader(System. in); Buffered. Reader br = new Buffered. Reader(isr); // input data dianggap sebagai string temp = br. read. Line(); try { // konversi dari string ke floating-point bilangan = Double. parse. Double(temp); } catch (Number. Format. Exception nfe) { System. out. println("Data yang dimasukkan bukan bilangan"); System. exit(1); } System. out. println("Bilangan yang dimasukkan " + "adalah " + bilangan); } }

Proses Output �Sejauh ini, untuk menampilkan output ke console, kita menggunakan method print() dan

Proses Output �Sejauh ini, untuk menampilkan output ke console, kita menggunakan method print() dan println() �Untuk menuliskan output ke media lainnya, misalkan file, gunakan method write() �System. out adalah objek dari tipe Print. Stream. Sedangkan Print. Stream adalah turunan dari Output. Stream, maka System. out dapat menggunakan method write() yang didefinisikan pada kelas Output. Stream. �Deklarasi method write() adalah void write(int nilai. Byte)

Contoh penggunaan write() class Demo. Write { public static void main(String[] args) { int

Contoh penggunaan write() class Demo. Write { public static void main(String[] args) { int i = 'A'; byte b = 65; char c = 'B'; System. out. write(i); System. out. write(b); System. out. write(c); } }

Kelas Print. Writer �Selain menggunakan System. out, kita juga dapat menggunakan kelas Print. Writer

Kelas Print. Writer �Selain menggunakan System. out, kita juga dapat menggunakan kelas Print. Writer untuk menuliskan data ke layar console. �Terdapat beberapa bentuk konstruktor dari Print. Writer, di antaranya ialah Print. Writer(Output. Stream os, boolean flush. On. New. Line) os adalah objek dari Output. Stream, sedangkan flush. On. New. Line adalah parameter bertipe boolean yang menyatakan apakah stream output akan dibuang atau tidak setiap kali method println() dipanggil.

�Print. Writer mendukung method print() dan println() untuk semua tipe data �Cara pembentukan objek

�Print. Writer mendukung method print() dan println() untuk semua tipe data �Cara pembentukan objek Print. Writer yang dapat digunakan untuk pembentukkan output adalah: Print. Writer pw = new Print. Writer(System. out, true)

Contoh Print. Writer import java. io. Print. Writer; class Demo. Print. Writer { public

Contoh Print. Writer import java. io. Print. Writer; class Demo. Print. Writer { public static void main(String[] args) { // membuat objek Print. Writer pw = new Print. Writer(System. out, true); double d = 3. 1416; int i = 123; byte b = 65; char c = 'A'; String s = "Ini adalah string"; pw. println("Data } } bertipe bertipe double int byte char string : : : " " " + + + d); i); b); c); s);

Baca Tulis File �Pada contoh program berikut ditunjukkan cara untuk membaca data dari sebuah

Baca Tulis File �Pada contoh program berikut ditunjukkan cara untuk membaca data dari sebuah file dan kemudian menampilkan isi file tersebut ke layar monitor.

import java. io. *; class Demo. Baca. File { public static void main(String[] args)

import java. io. *; class Demo. Baca. File { public static void main(String[] args) { File. Input. Stream finput = null; int data; // membuka file try { finput = new File. Input. Stream("d: /INPUT. TXT"); } catch (File. Not. Found. Exception fnfe) { System. out. println("File tidak ditemukan. "); return; // keluar dari method } // membaca data dari dalam file // dan menampilkan hasilnya ke layar console try { while ((data = finput. read()) != -1) { // ketika ditampilkan, data dikonversi ke tipe char System. out. print((char) data); } } catch (IOException ioe) { System. out. println(ioe. get. Message()); return; } // menutup file try { finput. close(); } catch (IOException ioe) {} } }

�Berikut contoh menuliskan data ke file

�Berikut contoh menuliskan data ke file

import java. io. *; class Demo. Tulis. File { public static void main(String[] args)

import java. io. *; class Demo. Tulis. File { public static void main(String[] args) { File. Output. Stream foutput = null; String data = "Baris pertama n. Baris kedua n. Baris ketiga"; // membuka file try { foutput = new File. Output. Stream("d: /OUTPUT. TXT"); } catch (File. Not. Found. Exception fnfe) { System. out. println("File tidak dapat terbentuk. "); return; // keluar dari method } // menulis data ke dalam file try { for (int i=0; i<data. length(); i++) { // data akan dikonversi per karakter foutput. write((int) data. char. At(i)); } } catch (IOException ioe) { System. out. println(ioe. get. Message()); return; } // menutup file try { foutput. close(); } catch (IOException ioe) {} } }

�Berikut demo menyalin isi suatu file ke dalam file lain

�Berikut demo menyalin isi suatu file ke dalam file lain

import java. io. *; class Demo. Salin. File { public static void main(String[] args)

import java. io. *; class Demo. Salin. File { public static void main(String[] args) { File. Input. Stream finput = null; File. Output. Stream foutput = null; int data; // membuka file input try { finput = new File. Input. Stream("d: /FILE 1. TXT"); } catch (File. Not. Found. Exception fnfe) { System. out. println("File input tidak ditemukan"); return; // keluar dari method } // membuka file output try { foutput = new File. Output. Stream("d: /FILE 2. TXT"); } catch (File. Not. Found. Exception fnfe) { System. out. println("File output tidak dapat terbentuk"); return; // keluar dari method } // membaca data dari file input // dan memasukkannya ke dalam file output try { while ((data = finput. read()) != -1) { foutput. write(data); } } catch (IOException ioe) { System. out. println(ioe. get. Message()); return; } try { finput. close(); foutput. close(); } catch (IOException ioe) {} } }