Halaman 1
Halaman 2
intn; BufferedReaderinput=newBufferedReader(new InputStreamReader(System.in)); StringinputString; System.out.print("MasukkanBilanganbulat:"); try { inputString=input.readLine(); n=Integer.parseInt(inputString); System.out.println("Seperempatdariintegeryangdimasukkanadalah: "+(n/0)); } catch(IOExceptione) { inputString=e.toString(); System.out.println(inputString+"PayahDehGue"); } catch(NumberFormatExceptione) { inputString=e.toString(); System.out.println(inputString+"KasianDehGue"); } }
Perhatikanlah bahwa kode program yang akan ditangkap kesalahannya terdapat didalam try block.
Halaman 3
Selanjutnya terdapat catch block yang akan menangani exception yang akan muncul. Bagian program tersebut hanya akan dieksekusi jika terdapat kesalahan pada saat eksekusi dari kodekode program yang terdapat didalam try block. Dimana :
catch(IOExceptione) { inputString=e.toString(); System.out.println(inputString+"PayahDehGue"); }
digunakan untuk menangkap kesalahan data : NumberFormatException. Misalkan yang dimasukkan adalah nilai 12w2 maka NumberFormatException akan tereksekusi. Setelah catch dieksekusi maka try/catch sequence sudah diterminasi.
Keterangan Koversi ilegal Index ilegal Array dengan panjang negative Referensi null Run-time security violation EOF sebelum input selesai File nggak ada
java.io.EOFException java.io.FileNotFoundException
Halaman 4
Keseluruhan I/O Exception diterbitkan oleh Thread.sleep method. Memory kurang Kesalahan internal Kesalahan tidak terdefinisi
Runtime exception adalah exception yang bisa saja tidak ditangani tanpa menyebabkan program berhenti kecuali jika propagasi exceptionnya sampai ke main, maka akan menyebabkan terminasi program secara abnormal. Checked Exception adalah exception yang ditangani secara explicit didalam throws. Programmer harus membuat catch untuk menangani exception yang terjadi. Sedangkan error adalah kesalahan yang tidak unrecoverable exception artinya tidak bisa ditangani oleh catch.
/** *@paramargsthecommandlinearguments */
Halaman 5
publicstaticvoidpf(StringtoF)throwsIOException {} }
pada contoh program diatas public static void pf(String toF) throws IOException memberikan nilai exception ke methods yang memanggil perhatikanlah catch (IOException error) yang menangkap exception dari method pf.
Halaman 6
2. System.out 3. System.err Sedangkan BufferedReader digunakan untuk input per baris. Selanjutnya jika ingin melakukan input dari console method yang dipakai adalah readLine. Tetapi sebelum menggunakan readLine buatlah terlebih dahulu sebuah BufferedReader object dari InputStreamReader object yang dibuat dari System.in
4.2.2 StringTokenizer
jika akan melakukan pembacaan terhadap sebuah bilangan integer dengan menggunakan readLine maka didalam setiap barisnya hanya ada satu nilai bilangan integer yang sah. kemudian diterjemahkan dengan method parseInt dari object Integer. Bagaimanakah jika setiap baris terdiri dari lebih 1 integer. Maka digunakan StringTokenizer yang memisahkan sebuah String menjadi tokens, caranya adalah dengan :
importjava.util.StringTokenizer; Perhatikanlahkodeprogramberikutini: importjava.io.InputStreamReader;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.util.StringTokenizer;
publicclassMaxTest
Halaman 7
publicstaticvoidmain(String[]args)
BufferedReaderin=newBufferedReader(new
InputStreamReader(System.in));
StringoneLine;
StringTokenizerstr;
intx;
inty;
System.out.println("Enter2intsononeline:");
try
oneLine=in.readLine();
Halaman 8
if(oneLine==null)
return;
str=newStringTokenizer(oneLine);
if(str.countTokens()!=2)
System.out.println("Error:needtwoints");
return;
x=Integer.parseInt(str.nextToken());
y=Integer.parseInt(str.nextToken());
System.out.println("Max:"+Math.max(x,y));
catch(IOExceptione)
{System.err.println("UnexpectedIOerror");}
Halaman 9
catch(NumberFormatExceptione)
{System.err.println("Error:needtwoints");}
Program diatas menunjukkan penggunaa input satu baris untuk memasukkan 2 buah integer. Secara default tokens dipisahkan oleh white space. StringTokenizer dapat dibuat agar dapat mengenali delimiter yang berbeda.
importjava.io.BufferedReader;
importjava.io.IOException;
publicclassListFiles
Halaman 10
publicstaticvoidmain(String[]args)
if(args.length==0)
System.out.println("Nofilesspecified");
for(StringfileName:args)
listFile(fileName);
publicstaticvoidlistFile(StringfileName)
FileReadertheFile;
BufferedReaderfileIn=null;
StringoneLine;
System.out.println("FILE:"+fileName);
Halaman 11
try
theFile=newFileReader(fileName);
fileIn=newBufferedReader(theFile);
while((oneLine=fileIn.readLine())!=null)
System.out.println(oneLine);
catch(IOExceptione)
{System.out.println(e);}
finally
//Closethestream
try
Halaman 12
if(fileIn!=null)
fileIn.close();
catch(IOExceptione)
{}
Program diatas akan menampilkan isi dari text files yang namanya disebutkan sebagai command argument. Sedangkan formatted output sama dengan input. FileWriter, PrintWriter, dan println menggantikan FileReader, BufferedReader, dan readLine. Contoh dari program adalah sebagai berikut :
importjava.io.FileReader;
importjava.io.BufferedReader;
importjava.io.FileWriter;
importjava.io.PrintWriter;
Halaman 13
importjava.io.IOException;
publicclassDoubleSpace
publicstaticvoidmain(String[]args)
for(StringfileName:args)
doubleSpace(fileName);
publicstaticvoiddoubleSpace(StringfileName)
PrintWriterfileOut=null;
BufferedReaderfileIn=null;
Halaman 14
try
fileIn=newBufferedReader(newFileReader(fileName));
fileOut=newPrintWriter(newFileWriter(fileName+".ds"));
StringoneLine;
while((oneLine=fileIn.readLine())!=null)
fileOut.println(oneLine+"\n");
catch(IOExceptione)
{e.printStackTrace();}
finally
Halaman 15
try
if(fileOut!=null)
fileOut.close();
if(fileIn!=null)
fileIn.close();
catch(IOExceptione)
{e.printStackTrace();}
Perhatikanlah bahwa ada FileWriter dan PrintWriter. FileWriter merupakan class yang digunakan untuk menulis character file. Sedangkan encoding yang digunakan tergantung kepada encoding dari system. PrintWriter mencetak representasi character dari output stream dengan encoding
Halaman 16
Referensi :
1. Deitel, H; Deitel, M; Java How to Program, 3rd Ed, Prentice Hall, New York, 2002. 2. Netbeans.org; Using NetBeansTM IDE 5.5, http:\\www.netbeans.org. 3. Weiss, Mark Allen; "Data Structures and Problem Solving Using Java" Web sites : 1. http://www.aw-bc.com/cssuport 2. http://www.netbeans.org 3. http://java.sun.com
&&&&