Download Aplikasi berbasis teks

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
APLIKASI BERBASIS TEKS
TOPIK

Command-Line Arguments dan System Properties

Pembacaan dari Standard Input

Penanganan File

Membaca dari File

Menulis ke File
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”
SYSTEM PROPERTIES

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
SYSTEM PROPERTIES
Class System

Menyediakan method untuk menentukan system properties yang ada,
method getProperties yang mengembalikan object Properties

Juga menyediakan method getProperty yang berlebih
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);

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
MEMBACA DARI STANDART INPUT : STREAM

Character Streams


Byte Stream


Untuk karakter Unicode
Untuk data biner
Contoh predefine


System.in (keyboard secara default)
System.out (console secara default)
STANDART INPUT : BUFFEREDREADER
Membaca

karakter dari keyboard
Menggunakan byte stream System.in yang dibelokkan ke dalam
object BufferedReader
BufferedReader
br
=
new
InputStreamReader(System.in));

BufferedReader(new
Menggunakan method read dari object BufferedReader
ch = (int) br.read();
//membaca method yang mengembalikan sebuah integer
STANDART INPUT : CONTOH BUFFEREDREADER
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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!");
}
}
STANDART INPUT : BUFFEREDREADER
Membaca

keseluruhan baris
Menggunakan byte stream System.in yang dibelokkan ke
dalam object BufferedReader
BufferedReader
BufferedReader(new
InputStreamReader(System.in));

Menggunakan method readLine
str = br.readLine();
br
=
new
STANDART INPUT : CONTOH BUFFEREDREADER
1.import
java.io.*;
2.class GreetUser {
3.
public static void main(String args[])
4.
throws IOException {
5.
System.out.println("Hi, what's your name?");
6.
String name;
7.
BufferedReader br = new BufferedReader(new
8.
InputStreamReader(System.in));
9.
name = br.readLine();
10.
System.out.println("Nice to meet you, " +
11.
name + "! :)");
12.
}
13.}
STANDARD INPUT : REVIEW
 Jangan
lupa untuk mengimpor package java.io
seperti yang ditunjukkan di bawah ini :
import java.io.*;
 Membaca
dari stream
terjadinya exception
mungkin
menyebabkan
Menangani exception ini dengan menggunakan pernyataan
try-catch
 Atau menanganinya dengan mengindikasikan exception
dalam klausa throw dari method

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
MEMBACA DARI SEBUAH FILE
1
2
3
4
5
6
7
8
9
10
11
12
13
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...
MEMBACA DARI SEBUAH FILE
14
15
16
17
18
19
20
21
22
23
FileInputStream fis = null;
try {
fis = new FileInputStream(filename);
} catch (FileNotFoundException ex) {
System.out.println("File not found.");
}
try {
char data;
int temp;
//bersambung...
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.");
}
24
25
26
27
28
29
30
31
32
33
34
}
35
36
}
MENULIS KE SEBUAH FILE
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
MENULIS KE SEBUAH FILE
1
2
3
4
5
6
7
8
9
10
11
12
13
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...
MENULIS KE SEBUAH FILE
14
15
16
17
18
19
20
21
22
23
24
25
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.");
}
try {
boolean done = false;
int data;
//bersambung...
MENULIS KE SEBUAH FILE
26
27
28
29
30
31
32
33
34
35
36
37
38
do {
data = br.read();
if ((char)data == 'q') {
data = br.read();
if ((char)data == '$') {
done = true;
} else {
fos.write('q');
fos.write(data);
}
} else {
fos.write(data);
//bersambung...
MENULIS KE SEBUAH FILE
39.
40.
41.
42.
43.
44.
45.
46.}
}
} while (!done);
} catch (IOException ex) {
System.out.println("Problem in reading from
the file.");
}
}
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
RINGKASAN
Penanganan File
•
•
•
•
•
•
Membaca dari sebuah File
Menggunakan FileInputStream
Menggunakan method read
Menulis ke sebuah File
Menggunakan FileOutputStream
Menggunakan method write