Saturday, May 26, 2012

STREAM

STREAM
Proses input dan output pada dasarnya di dalam Java merupakan representasi dari stream yang menggunakan package java.io sebagai package utama. Stream sendiri adalah representasi abstrak dari input dan output device, yang mana aliran bytes akan ditransfer seperti file dalam harddisk, file pada system remote atau printer. Dari input stream kita bisa membaca data yang dapat berupa file, keyboard atau computer remote. Dan yang untuk output stream kita bisa untuk menulis data. Package java.io mendukung dua tipe stream, yaitu binary (data berupa bit) dan karakter stream (tipe khusus untuk pembacaan dan penulisan karakter).
1.      INPUT STREAM
Syntax :
/**
 * @(#)InputStream.java
 *
 *
 * @author atmaji
 * @version 1.00 2011/4/30
 */
import java.io.*;
class InputStream {
public static void main(String[] args) throws IOException {
byte[] data = new byte[10];
System.out.print("Ketik max 10 buah karakter :");
System.in.read(data);
System.out.print("Karakter yang Anda ketik yaitu : ");
for(int i=0;i<data.length;i++) {
System.out.print((char)data[i]); }
}
}
Output :

2.      OUTPUT STREAM
Syntax :
/**
 * @(#)OutputStream.java
 *
 *
 * @author atmaji
 * @version 1.00 2011/4/30
 */
import java.io.*;
class OutputStream {
public static void main(String[] args) throws IOException {
byte[] data = {'a','d','a','a','t','m','a','j','i'};
System.out.write(data,3,6); //menulis isi array yang dimulai dari index ke-3 yang berjumlah 6 karakter
System.out.write('\n'); //pindah baris
System.out.write(data); //menulis semua isi array data
}
}
Output :
3.      KELAS PRINTWRITER
Syntax :
/**
 * @(#)TulisData.java
 *
 *
 * @author atmaji
 * @version 1.00 2011/4/30
 */
import java.io.PrintWriter;
import java.io.File;
public class TulisData {
      public static void main(String[]args)throws Exception{
                  File fl=new File("nilai.txt");
                 
                  if(fl.exists()){
                              System.out.println("File sudah ada");
                              System.exit(0);
                  }
                  PrintWriter output=new PrintWriter(fl);
                  output.println("Aji 20");
                  output.println("Damar 10");
                  output.println("Adit 07");
                 
                  output.close();
      }
}
Output :
Sebuah file nilai.txt, jika file tersebut tidak ada maka akan diciptakan file tersebut.
Jika file tersebut sudah ada, maka isinya akan dibuang dan dicetak lagi dengan isi
yang baru.

4.      DATA STREAM
Syntax :
/**
 * @(#)DemoDataStream.java
 *
 *
 * @author atmaji
 * @version 1.00 2011/5/2
 */
import java.io.*;
public class DemoDataStream {
      //main method
    public static void main(String[]args) {
      //mendeklarasikan data input dan output
      DataInputStream in=null;
      DataOutputStream out=null;
     
      //membuat file yang diasosiakan dengan fileTemp
      File fil=new File("fil.dat");
     
      //memeriksa apakah file output sudah ada atau belum
      if (fil.exists()){
                  System.out.println("File ini sudah ada");
                  System.exit(0);
      }
     
      //menulis data
      try
      {
                  //membuat data output stream untuk fi
                  out=new DataOutputStream(new FileOutputStream(fil));
                  for(int i=0; i<100; i++)
                              out.writeInt((int)(Math.random()*100));
      }
      catch (IOException ex){
                  System.out.println(ex.getMessage());
      }
      finally{
                  try{
                              //Menutup file
                              if(out!=null)out.close();
                  }
                  catch(IOException ex){
                  }
                  }
                 
                  //membaca data
                  try{
                              //membuat data input stream
                              in=new DataInputStream(new FileInputStream(fil));
                              for(int i=0; i<100; i++)
                                          System.out.print("  "+in.readInt());
                  }
                  catch (FileNotFoundException ex){
                              System.out.print("File not found");
                  }
                  catch (IOException ex){
                              System.out.print(ex.getMessage());
                  }
                  finally{
                              try{
                                          //menutup file
                                          if(in!=null)in.close();
                              }
                              catch (IOException ex){
                                          System.out.println(ex);
                              }
                              }
                  }
                  }
                 
Output :
Output pertama kali setelah program dirun maka akan muncul tampilan seperti di atas dimana belum ada file “fil.dat” untuk sebelumnya. Kemudian setelah program dirun seperti di atas, maka otomatis file “fil.dat” akan terbentuk, dan apabila dijalankan lagi maka program mendeteksi bahwa file “fil.data” sudah ada seperti capture hasil running kedua kalinya di bawah ini :
Maka jika kita ingin hasil outputnya sesuai yang kita ingin (math.random) kita harus menghilangkan file tersebut terlebih dahulu di direktori tempat menyimpan program tersebut.

5.      BUFFERED STREAM
Syntax :
/**
 * @(#)Main.java
 *
 *
 * @author
 * @version 1.00 2011/5/2
 */
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Main {
  public static void main(String[] args) throws Exception {
    String fromFileName = "from.txt";
    String toFileName = "to.txt";
    BufferedInputStream in = new BufferedInputStream(new FileInputStream(fromFileName));
    BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(toFileName));
    byte[] buff = new byte[32 * 1024];
    int len;
    while ((len = in.read(buff)) > 0)
      out.write(buff, 0, len);
    in.close();
    out.close();
  }
}
Output :
Program tersebut adalah program yang mentransferkan isi dari file “from.txt” ke dalam file “to.txt”. Mula-mula kita terlebih dahulu membuat 2 buah file yaitu file sumber yang akan ditransfer (copy) isinya (“from.txt”) dan tujuan isi yang akan ditransfer (“to.txt”).
Dimana file “from.txt” berisi teks “APRIANTO DWI ATMAJI” sedangkan untuk file “to.txt” belum ada isinya.
Setelah program tersebut dijalankan maka isi dari file “from.txt” akan dioutputkan ke dalam file “to.txt
6.      PARSING TEXT
Syntax :
/**
 * @(#)parsing.java
 *
 *
 * @author atmaji
 * @version 1.00 2011/5/4
 */
import java.io.*;
public class parsing {

public static void main(String[] args) throws IOException {
int j=0;
String s = "Data berupa huruf = ";
double[] d = new double[50];
StreamTokenizer tokenizer = new StreamTokenizer (new FileInputStream("parsing.txt"));

while(tokenizer.nextToken() != StreamTokenizer.TT_EOF){

if(tokenizer.ttype == StreamTokenizer.TT_WORD) {
s = s +" "+ tokenizer.sval;
} else if(tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
d[j] = tokenizer.nval;
j++;
} else if(tokenizer.ttype == StreamTokenizer.TT_EOL) {
System.out.println();
}
}
System.out.println(s);
System.out.print("Data berupa angka = ");
for(int k=0;k<j;k++)
System.out.print(d[k]+" ");
}
}

File “parsing.txt” :
Output :

No comments:

Post a Comment