Aplikasi berbasis teks
Topik Command-Line Arguments dan System Properties Pembacaan dari Standard Input Penanganan File Membaca dari File Menulis ke File 2
Command-Line Arguments JAVA mengijinkan user untuk memasukkan data dari command-line Tujuan dari deklarasi String args[] sebagai sebuah parameter pada method utama Ketika menggunakan perintah java, menentukan data setelah nama class menandakan bahwa Anda memasukkan data lewat parameter args Contohnya : java Calculate 1 2 args[0] mempunyai nilai “1” args[1] mempunyai nilai “2” 3
System Properties Sangat mirip dengan variabel environment Java juga memperkenankan Anda memanipulasi system properties dari baris perintah System property Sangat mirip dengan variabel environment Tetapi bukan merupakan platform-dependent Property Memetakan antara nama property ke nilai yang berhubungan dengannya Direpresentasikan dalam Java dengan class Properties 4
System Properties Class System Menyediakan method untuk menentukan system properties yang ada, method getProperties yang mengembalikan object Properties Juga menyediakan method getProperty yang berlebih 5
System Properties Memasukkan sebuah property baru Menggunakan pilihan -D dengan perintah java java -D<name>=value Contohnya : java -Duser.home=philippines Menampilkan list dari system properties Menggunakan method getProperties System.getProperties().list(System.out); 6
Membaca dari Standart Input : Stream Dapat menggunakan stream untuk membaca dari standard input Stream Keadaan suatu file atau device yang membolehkan rangkaian item untuk dibaca atau ditulis Terhubung ke device physical Terdapat dua jenis stream yang umum : Character Stream Byte Stream 7
Membaca dari Standart Input : Stream Character Streams Untuk karakter Unicode Byte Stream Untuk data biner Contoh predefine System.in (keyboard secara default) System.out (console secara default) 8
Standart Input : BufferedReader Membaca karakter dari keyboard Menggunakan byte stream System.in yang dibelokkan ke dalam object BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Menggunakan method read dari object BufferedReader ch = (int) br.read(); //membaca method yang mengembalikan sebuah integer 9
Standart Input : Contoh BufferedReader import java.io.*; class FavoriteCharacter { public static void main(String args[]) throws IOException { System.out.println("Hi, what's your favorite character?"); char favChar; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); favChar = (char) br.read(); System.out.println(favChar + " is a good choice!"); } 10
Standart Input : BufferedReader Membaca keseluruhan baris Menggunakan byte stream System.in yang dibelokkan ke dalam object BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Menggunakan method readLine str = br.readLine(); 11
Standart Input : Contoh BufferedReader import java.io.*; class GreetUser { public static void main(String args[]) throws IOException { System.out.println("Hi, what's your name?"); String name; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); name = br.readLine(); System.out.println("Nice to meet you, " + name + "! :)"); } 12
Standard Input : Review Jangan lupa untuk mengimpor package java.io seperti yang ditunjukkan di bawah ini : import java.io.*; Membaca dari stream mungkin menyebabkan terjadinya exception Menangani exception ini dengan menggunakan pernyataan try-catch Atau menanganinya dengan mengindikasikan exception dalam klausa throw dari method 13
Membaca dari sebuah File Dapat menggunakan class FileInputStream Salah satu constructor dari class ini FileInputStream(String filename) Membuat koneksi ke file yang sebenarnya dimana filename ditentukan sebagai sebuah argument Sebuah FileNotFoundException diberikan ketika file tidak ada atau tidak dapat dibuka untuk dibaca Menggunakan method read Mengembalikan sebuah integer yang merepresentasikan pembacaan data Mengembalikan sebuah nilai -1 ketika akhir dari file telah dicapai 14
Membaca dari sebuah File import java.io.*; class ReadFile { public static void main(String args[]) throws IOException { System.out.println("What is the name of the file to read from?"); String filename; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); filename = br.readLine(); System.out.println("Now reading from " + filename + "..."); //bersambung... 15
Membaca dari sebuah File FileInputStream fis = null; try { fis = new FileInputStream(filename); } catch (FileNotFoundException ex) { System.out.println("File not found."); } char data; int temp; //bersambung... 16
Membaca dari sebuah File do { temp = fis.read(); data = (char) temp; if (temp != -1) { System.out.print(data); } } while (temp != -1); } catch (IOException ex) { System.out.println("Problem in reading from the file."); 17
Menulis ke sebuah File Salah satu konstruktor dari class ini Dapat menggunakan class FileOutputStream Salah satu konstruktor dari class ini FileOutputStream(String filename) Menghubungkan sebuah output stream ke sebuah file untuk ditulis Sebuah FileNotFoundException diberikan ketika file tidak dapat dibuka untuk ditulis Menggunakan method write void write(int b) dimana, b menunjuk pada data yang dituliskan ke file 18
Menulis ke sebuah File import java.io.*; class WriteFile { public static void main(String args[]) throws IOException { System.out.println("What is the name of the file to be written to?"); String filename; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); filename = br.readLine(); System.out.println("Enter data to write to " + filename + "..."); //bersambung... 19
Menulis ke sebuah File System.out.println("Type q$ to end."); FileOutputStream fos = null; try { fos = new FileOutputStream(filename); } catch (FileNotFoundException ex) { System.out.println("File cannot be opened for writing."); } boolean done = false; int data; //bersambung... 20
Menulis ke sebuah File do { data = br.read(); if ((char)data == 'q') { done = true; } else { fos.write('q'); fos.write(data); } //bersambung... 21
Menulis ke sebuah File } } while (!done); } catch (IOException ex) { System.out.println("Problem in reading from the file."); 22
Ringkasan Command-Line Arguments dan System Properties Mendapatkan masukan dari sebuah baris perintah (command line) Memanipulasi system properties java -D<name>=<value> Membaca dari Standard Input Menggunakan System.in Menggunakan BufferedReader Menggunakan method read 23
Ringkasan Penanganan File Membaca dari sebuah File Menggunakan FileInputStream Menggunakan method read Menulis ke sebuah File Menggunakan FileOutputStream Menggunakan method write 24