PEMROGRAMAN JAVA LANJUT

PEMROGRAMAN JAVA LANJUT
II - 1

PRAKTIKUM II
JAVA IO
1. Tujuan
Siswa dapat memahami penggunaan kelas-kelas untuk IO (Input Output)
pada pemrograman Java.

2. Praktikum
2.1. Penunjang
Java IO
IO merupakan singkatan dari Input Output. Input melibatkan masukan data
dari peralatan input, sedangkan output akan menampilkan data kepada
pengguna. Java mendukung mekanisme input output di dalam package
java.io dan java.nio. Kelas-kelas Java IO berdasarkan suatu hirarki kelas.
Kelas dasar memiliki fungsi umum. Sedangkan kelas-kelas di bawahnya
atau subkelas menambahkan fungsi yang lebih khusus.
Java.io mempunyai 2 kategori utama yaitu kelas untuk menangani sistem
file dan kelas untuk membaca dan menulis stream data. Kategori yang
kedua terbagi lagi menjadi kelas untuk menangani byte stream dan kelas

untuk menangani character stream.
File
Kelas File merepresentasikan suatu file ataupun direktori dalam sistem file
melalui pathname.


Pathname


Unix: /usr/java/bin/javac



Windows: c:\java\bin\javac

PEMROGRAMAN JAVA LANJUT
II - 2




Path representation


UNIX: /bin:/usr/bin:/usr/local/bin



Windows: c:\bin;c:\java\bin

Field, constructor dan method kelas File dapat dilihat pada dokumen Java
API pada bagian java.io.File
InputStream
InputStream merupakan abstrak kelas untuk membaca byte stream.
InputStream memiliki banyak subkelas yang memiliki fungsi yang lebih
spesifik. Penjelasan lanjut, lihat dokumen Java API pada bagian
java.io.InputStream.
OutputStream
OutputStream merupakan abstrak kelas untuk menulis byte stream.
OutputStream memiliki banyak subkelas yang memiliki fungsi yang lebih
spesifik. Penjelasan lanjut, lihat dokumen Java API pada bagian

java.io.OutputStream.
Reader
Reader merupakan abstrak kelas untuk membaca character stream.
Reader memiliki banyak subkelas yang memiliki fungsi yang lebih spesifik.
Penjelasan lanjut, lihat dokumen Java API pada bagian java.io.Reader.
Writer
Writer merupakan abstrak kelas untuk menulis character stream. Writer
memiliki banyak subkelas yang memiliki fungsi yang lebih spesifik. Penjelasan
lanjut, lihat dokumen Java API pada bagian java.io.Writer.
Serialization
Serialization adalah fasilitas untuk menulis objek ke dalam stream (termasuk
keadaannya) dan mencapainya kemudian sama persis. Java

PEMROGRAMAN JAVA LANJUT
II - 3

menyediakan interface Serializable. Kelas yang mensupportnya
ObjectInputStream dan ObjectOutputStream.

2.2. Latihan

1. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian
pahami dan berikan penjelasan dari program tersebut.
//Aplikasi untuk mengecek separator pada OS yang digunakan
import java.io.*;

public class FileS {
public static void main(String[] arg) {
System.out.println(File.separator+" - "+
File.separatorChar+" - "+
File.pathSeparator+" - "+
File.pathSeparatorChar);
}
}

2. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian
pahami dan berikan penjelasan dari program tersebut.
//Aplikasi untuk membuat satu file teks dan menulisnya
import java.io.*;

public class FileTest1

{
public static void main(String args[]) throws IOException
{
PrintWriter output = new PrintWriter(new File("test1.txt"));
output.println("Hello World in one line!");
output.close();

PEMROGRAMAN JAVA LANJUT
II - 4

}
}

3. Kerjakan contoh program di bawah ini, perhatikan hasilnya kemudian
pahami dan berikan penjelasan dari program tersebut.
//Aplikasi untuk mencoba method pada kelas File
import java.io.*;
import java.util.*;

public class FileMethod

{
public static void main(String[] args) throws IOException
{
String filename;
Scanner input = new Scanner(System.in);

System.out.print("Masukkan nama file atau direktori");
System.out.print(" atau tekan untuk keluar:");
filename = input.nextLine();

while(!filename.equals("")) //menguji bukan
{
File fileDir = new File(filename);
if(!fileDir.exists())
{
System.out.println("Nama file tidak ada");
break;
}
System.out.print(filename+ " adalah suatu ");
if(fileDir.isFile())

System.out.println("file.");

PEMROGRAMAN JAVA LANJUT
II - 5

else
System.out.println("direktori.");

System.out.print("File/direktori ini ");
if(!fileDir.canRead())
System.out.print("tidak ");
System.out.println("dapat dibaca.");

System.out.print("File/direktori ini ");
if(!fileDir.canWrite())
System.out.print("tidak ");
System.out.println("dapat ditulis.");

if(fileDir.isDirectory())
{

System.out.println("Isi:");
String[] fileList = fileDir.list();
//tampilkan isi direktori
for(int i=0; i