Wednesday, December 8, 2010

ජාවා Byte Streams භාවිතා කරන අයුරු

කලින් පාඩමෙන් අපි කතාකලා ජාවා stream පිළිබඳව.  දැන් අපි බලමු byte stream භාවිතා කරන්නේ කුමනාකාරයෙන්ද කියල. Byte stream එකක් input / output operations සිදු කරනුයේ 8-bit අකාරයටයි.  එනම් character streams වලදී මෙන් නොව මෙහිදී characters වෙනුවට raw bytes කියවීම සහ ලිවීම සිදුකෙරේ. එම නිසා data file copy කිරීම යනාදී වැඩ වලට යොදාගත යුත්තේ byte stream වේ. නමුත් භාවිතාවන data, character වලින් යුක්ත නම් character streams වලට යෑම වඩාත් ඵලදායීවේ.

අහත දැක්වෙන ආකාරයට ජාවා වැඩසටහනක් තුලදී byte streams යොදාගත හැකිය. මෙහිදී I/O Stream නිරූපණය කිරීම සඳහාjava.io පැකේජයේ ඇති FileInputStream සහ FileOutputStream class යොදාගැනේ.


/**      
*class  : ByteOperations
*Author : Kanishka Dilshan      
*Purpose: Showing how to use byte streams
*Blog   : http://javaxclass.blogspot.com      
*/ 


import java.io.*;

public class ByteOperations{
 public static void main(String args[]){
  FileInputStream fileInpStrm=null;
  FileOutputStream fileOutStrm=null;
  try{
   fileInpStrm=new FileInputStream("myDataFile.dat");
   fileOutStrm=new FileOutputStream("newDataFile.dat");
   int tmp;
   while((tmp=fileInpStrm.read())!=-1){
    fileOutStrm.write(tmp);
   }

  }catch(FileNotFoundException e){
   System.err.println("File NOt Found : " + e.getMessage());
  }catch(IOException e){
   System.err.println("IO Exception : " + e.getMessage());
  }finally {
   try{
    if(fileInpStrm!=null){
     fileInpStrm.close();
    }
      }catch(IOException e){}
   try{   
    if(fileOutStrm!=null){
     fileOutStrm.close();
    }
   }catch(IOException e){}
  }
 }
}

මෙහිදී සිදුවනුයේ myDataFile.dat file එකේ clone එකක් newDataFile.dat ලෙසින් සෑදීමයි. පෙර පරිදිම මෙහිදීද open කරන ලද ස්ට්‍රීම් close කර තිබේ.  

FileInputStream යනු InputStream යන abstract class එකෙහි child class එකක් වේ.  ඒම class අතර සම්බන්දය පහත පරිදි වේ.

තවත් ස්ට්‍රීම් වර්ග හා ඒවා යොදාගන්නා ආකරයන් පිලිබඳව අපි ඉදිරි පාඩම් වලදී සාකච්ඡා කරමු.

1 comments:

  1. niyamama niyama niyama wedak ayye.
    den nam java kiyana eka tikak withara terenawa.digatama liyanna ayye.mama thama june wala ewa thamai kiyawanne.

    (page load wenna godak wela yanawa ayye gadgets tikak adu karaoth narakada)

    ReplyDelete