Inputoutput dan Kelas File DasarDasar InputOutput Java menyediakan
- Slides: 31
Input/output dan Kelas File
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 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 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, 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 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 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 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 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 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 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 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 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 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. �Deklarasi method read() adalah sebagai berikut: int read() throws IOException
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 tersebut adalah String read. Line() throws IOException
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 { 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[] 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 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 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 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 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 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 file dan kemudian menampilkan isi file tersebut ke layar monitor.
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
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
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) {} } }
- Inputoutput devices
- File-file yang dibuat oleh user pada jenis file di linux
- Tabel frekuensi
- Tabel frekuensi data
- Batas kelas nyata
- Muatan materi pkn sd
- Batas kelas nyata dan semu
- Pengertian distribusi frekuensi
- Kelas dasar untuk kebanyakan kelas stream adalah
- Input stream in java
- Physical image vs logical image
- Fungsi sistem file
- Distributed file system definition
- An html file is a text file containing small markup tags.
- In a file-oriented information system, a transaction file
- Sebuah atm hanya menyediakan pecahan uang
- Suatu apotek mampu menyediakan tidak lebih dari 25 dos obat
- Sebuah atm hanya menyediakan pecahan uang
- Sebuah atm hanya menyediakan pecahan uang
- Peranti authoring berbasis kartu menyediakan layer
- Pedagang eceran lumayan menyediakan biaya advertensi
- Pusat promosi kesihatan komuniti menyediakan kemudahan
- Gunadarma
- Andaian batasan dan prinsip perakaunan
- Bagaimana cara menyisipkan variasi teks indah
- Bagan gantt/gantt charts menyediakan format standar untuk
- Bagan gantt/gantt charts menyediakan format standar untuk
- Java bytecode file
- Import java.io.file
- Import java.io.file
- Java file structure
- Java file input output