Input dan output dalam Java ditangani oleh paket java.io yang berisi kelas dan interface untuk menangani aliran data masuk dan keluar ke berbagai sumber seperti file, memori, dan disk. Kelas OutputStream dan Reader digunakan untuk output sedangkan InputStream dan Writer digunakan untuk input. Program contoh membaca isi file teks dengan memilih file terlebih dahulu dan membaca isinya baris demi baris.
1. Input/Output dalam Java dipaketkan dalam java.io. Selain kelas-kelas, paket ini juga
mengandung interface yang menangani aliran (stream) data output dan input. Data tersebut tersimpan
dalam file, memori, disk bisa dalam bentuk suara, gambar, maupun karakter. Kelas java.io.Output
Stream adalah:
public abstract class OutputStream
Sedangkan method-method nya adalah:
public abstract void write(int b) throws IOException
public void write(byte[] data) throws IOException
public void write(byte[] data, int offset, int length)
throws IOException
public void flush( ) throws IOException
public void close( ) throws IOException
public static void generateCharacters(OutputStream out)
throws IOException {
int firstPrintableCharacter = 33;
int numberOfPrintableCharacters = 94;
int numberOfCharactersPerLine = 72;
int start = firstPrintableCharacter;
while (true) { /* infinite loop */
for (int i = start; i < start =" ((start+1)" class="fullpost">
Kelas ini merupakan pengembangan dari kelas Byte Stream sehingga lebih efisien.
Terdiri dari 2 kelas:
Reader
Writer
OutputStream
FileOutputStream
PipedOutputStream FilterOutputStream ObjectOutputStream ByteArrayOutputStream
DataOutputStream BufferedOutputStream PrintStream
Reader
BufferedReader CharArrayReader InputStreamReader
FilterReader
PipedReader
LineNumberReader FileReader
PushbackReader
StringReader
Writer
BufferedWriter CharArrayWriter OutputStreamWrite
2. FilterWriter
PipedWriter
FileWriter
StringWriter
PrintWriter
Stream Standard
Kelas java.lang berkaitan standar input, output dan error. System.in merupakan objek dari
InputStream dan System.out dan System.err merupakan objek dari PrintStream. Dalam java cara
membaca inputan dari keyboard adalah menggunakan System.in. Agar mempermudah proses maka
obyek System.in dibungkus dengan obyek BufferedReader dengan cara:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Kita telah memperoleh obyek untuk menangani aliran karakter (character stream) yang memiliki
method-method seperti misalnya read() untuk membaca inputan karakter. Jika mencapai end of stream
maka akan menghasilkan nilai -1.
Contoh:
import java.io.*
class BacaKarakter(){
public static void main(String[] args){
char c;
try{
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
System.out.println(“Masukkan karakter (akhiri dengan
‘q’) : “);
do {
c = (char) br.read();
System.out.println(“Karakter terbaca : “+c);
} while (c != ‘q’);
} catch(IOException e){
System.out.println(“Ada error IO”);
System.exit(0);
}
}
}
Untuk membaca String (menggunakan try … catch … )
import java.io.*
class BacaString(){
public static void main(String[] args){
String str;
3. try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(“Masukkan karakter (akhiri dengan
”end”) : “);
do {
str = br.readLine();
System.out.println(“Karakter terbaca : “+c);
} while (c != ‘q’);
} catch(IOException e){
System.out.println(“Ada error IO”);
System.exit(0);
}
}
}
Kenapa menggunakan try catch? Karena operasi I/O dalam java harus melemparkan Exception, yaitu
IOException. Untuk membaca String (menggunakan throws exception)
import java.io.*
class BacaString(){
public static void main(String[] args) throws IOExcpetion{
String str;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
System.out.println(“Masukkan karakter (akhiri dengan
”end”) : “);
do {
str = br.readLine();
System.out.println(“Karakter terbaca : “+c);
} while (c != ‘q’);
}
}
Cara menampilkan Output ke Layar
Cara menampilkan Output ke layar adalah dengan menggunakan System.out.print() atau
System.out.println().
Cara membaca String dan kemudian mengkonvertnya ke dalam tipe data numerik lain
Kita tetap menggunakan perintah :
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
4. String str = br.readLine();
int panjang = new Integer.parseInt(str);
int lebar = new Integer(str).intValue();
Untuk menkonvert dari numerik ke String:
int i = 100;
String str = new String.valueOf(i);
Operasi File
Di dalam java operasi file menggunakan kelas java.io.File. Kelas ini memiliki konstruktor
umum yaitu: File(String namafile). Sedangkan method-method umumnya adalah:
−public boolean canRead()
−public boolean canWrite()
−public boolean createNewFile()
−public boolean delete()
−public boolean exists()
−public boolean isFile()
−public boolean isDirectory()
−public long lastModified()
−public long length()
−public boolean mkdir()
−public boolean mkdirs()
−public boolean renameTo(File newfilename)
Dan masih banyak lagi yang bisa dilihat di javado
Contoh program:
import java.io.*;
class cobaFile{
public static void main(String[] args) throws IOException {
if(args.length != 1){
System.out.println("Usage : java cobaFile
Berikut ini adalah contoh program Stream&File pada java. Program ini akan memilih file yang ada
pada hardisk dan membaca isinya.
File yang dimaksud adalah file yang berextensi txt atau text only.
Berikut ini adalah source codenya
5. import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.Vector;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;
public class BacaFile {
FileInputStream fstream;
DataInputStream in;
BufferedReader br;
Vector data;
public BacaFile() {
data = new Vector();
}
public void chooseFile() {
JFileChooser chooser = new JFileChooser("D:/");
FileNameExtensionFilter filter = new FileNameExtensionFilter("Text Only",
"txt");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(new JFrame());
if(returnVal == JFileChooser.APPROVE_OPTION) {
try {
fstream = new FileInputStream(chooser.getSelectedFile());
in = new DataInputStream(fstream);
br = new BufferedReader(new InputStreamReader(in));
}catch (Exception e){
System.err.println("Error:" + e.getMessage());
}
}
}
public Vector readLineByLine() {
String strLine;
try {
while ((strLine = br.readLine()) != null) {
data.addElement(strLine);
}
in.close();
return data;
} catch (Exception e) {
System.err.println("Error:" + e.getMessage());
return null;
}
}
}
program diatas akan merujuk pada hardisk drive D
dan berikut ini class untuk menjalankan program diatas.:
TesClass.java
import java.util.Vector;
public class TestClass {
public static void main(String args[]) {
BacaFile bacaFile = new BacaFile();
6. bacaFile.chooseFile();
Vector data = bacaFile.readLineByLine();
for(int i=0;data.size()>=1; i++) {
System.out.println(String.valueOf(data.get(i)));
}
}
}
Berikut ini screenshoot program setelah dijalankan :
1.memilih file yang akan di baca :
Berikut ini isi dari file New Text Document.txt :