Saturday, September 15, 2012

Java වැඩසටහනකට user inputs ලබාදීම( buffered reader භාවිතය )



අද අපි කතා කරන්න යන්නේ   buffered reader එක මගින් java  වැඩසටහනකට  user inputs ලබා ගන්න විදිය ගැන.අපි පහත code  එක මගින් මෙය තේරුම් ගනිමු.

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class BufferedReaderDemo {

      
       public static void main(String[] args) throws Exception {
             
              InputStreamReader isr=new  InputStreamReader(System.in);
              BufferedReader br=new BufferedReader(isr);
             
              System.out.println("enter your name");
              String name = br.readLine();
             
             
              System.out.println("enter your age ");
              int age = Integer.parseInt(br.readLine());
             
             
              System.out.println("enter your height ");
              double height  = Double.parseDouble(br.readLine());
             
              System.out.println("Your name is  "+name + "  You are  "+age+ "  years old  "+ "and  " + "Your height is  "+ height);
             
             
             
             

       }

}



මෙහි output  එක  :







ඉහත code  එකේ මුලින්ම කරලා තියෙන්නේ  io   package  එකේ තියන  BufferedReader හා InputStreamReader  කියන classes  දෙක   import  කිරීම. මෙලෙස  import කිරීම මගින් එම  class දෙක තුල ඇති methods   අපේ  code එක තුලදී අපිට භාවිතා කරන්න පුලුවන්. ඉහත  classes දෙක වෙන වෙනම import  නොකර කෙලින්ම import java.io.*;ලෙස මුලු  io package එකම  import කරන්නත් පුලුවන්. එවිට io package එකේ ඇති සියලුම classes  අපේ code  එක තුලට import වෙනවා.



ඉන්පසු  main method එක අවසානයේදී  throws Exception ලෙස දක්වා ඇත්තේ මොකක්ද කියන එක ඔබට ගැටලුවක් වෙන්න පුලුවන්. අපි එහිදී සිදු කරලා තියෙන්නේ user inputs  ලබා දීමේදී සිදු විය හැකි exceptions handle  කිරීමමෙය  try ,catch   භාවිතයෙන්  උනත්  සිදු  කරන්න  පුලුවන්. Exception Handle කිරීම ගැන අපි ඉදිරියේදී කතා කරමු. දැනට ඒක ගැන වැඩිපුර නොහිතා Bufferde Reader  එක භාවිතා කරන විට Exception handle  කරන්න ඕන කියල විතරක් මතක තියා ගන්න.



හරි දැන් ඔබට ගැටලුවක් ඇති මෙන්න මේ කොටසින් කරන්නේ මොකක්ද කියලා.
InputStreamReader isr=newInputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);

ඇත්තටම මෙහිදී මුලින්ම සිදු කරලා තියෙන්නේ අපි import  කරපු  InputStreamReader  class එක භාවිතා කරලා isr  කියල  object එකක් සාදා ගැනීම. එම object  එක සැදීමේදී  System.in කියලා  parameter එකකුත් pass  කරන්න ඕන.



ඉන් පසුව BufferedReader br=new BufferedReader(isr);  කියන එකෙන් කරන්නෙ අපි  import කර ගත්  BufferedReader class එක භාවිතා කරලා  br කියල  object එකක් සාදා ගැනීම.  මෙහිදී අපි ඉහත  සාදා ගත්  isr object එක මෙම br object  එකට  parameter එකක් ලෙස  pass කරනවා.

ඉහතදී  පේලි දෙකකින් ලියා ඇති code  එක පහත  පරිදි තනි පේලියකින් උනත් ලියන්න පුලුවන්.
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

මෙම object  සෑදීම පිලිබදව ඔබට එතරම් වැටහෙන්නේ නැත්නම් අපි  object oriented කොටස ගැන ඉදිරි පඩම් වලදි කතා කරන විට එය  ඔබට  හොදින් වැටහේවි.  

 එතකම්  BufferedReader එක භාවිතා කිරීමට main  method  එකතුල
InputStreamReader isr=new  InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
ලෙස දැක්විය යුතු බව මතක තබා ගන්න




හරි දැන් අපි බලමු සාදා ගත්  BufferedReader object එක භාවිතයෙන් කොහොමද user inputs  කියවන්නෙ කියලා. BufferedReader එක භාවිතා කරලා  user inputs ගනිද්දි අපිට එම input  එක ගන්න පුලුවන් String  එකක් විදියට විතරයි.


අපිට numeric value එකක්  user input එකක් විදියට ගන්න ඕනි නම් අපි එය  String  එකක් විදියට අරගෙන අදාල numeric value  එකට  convert කල යුතුයි.

BufferedReader එකෙන් String  එකක්  input එක විදියට ගන්නව නම් මෙන්න මෙහෙම තමා ඒක කරන්න ඕන.
String name = br.readLine();

මෙහිදී   br  object  එක  සහ  BuffereedReader   class   එකේ තියන  readline metnod එක භාවිතා කොට ගෙන අදාල String  එක name කියලා String variable  එකකට  assign   කරනවා.


BufferedReader  එකෙන්  Integer   එකක්  input එක විදියට ගන්නව නම් මෙන්න මෙහෙම තමා ඒක කරන්න ඕන.

int age = Integer.parseInt(br.readLine());

මෙහිදී සිදු වන්නේ  Integer  class   එකේ ඇති  parseInt method එකට   parameter  එකක් ලෙස BufferedReader  එකෙන් ලබා ගන්නා  input එක ලබා දී එය   Integer එකකට  convert කිරීමයි. .



BufferedReader  එකෙන්   Double    එකක්  input එක විදියට ගන්නව නම් මෙන්න මෙහෙම තමා ඒක කරන්න ඕන.

double height  = Double.parseDouble(br.readLine());


මෙහිදී සිදු වන්නේ  Double   class   එකේ ඇති  parseDouble method එකට   parameter  එකක් ලෙස BufferedReader  එකෙන් ලබා ගන්නා  input එක ලබා දී එය   Double  එකකට  convert කිරීමයි. .


ඉහත එකේ අනිත කොටස් ඔබට තෙරුම් ගන්න පුලුවන් සරල දෙවල් ටිකක් තමා තියෙන්නේ. තේරෙන්නේ නැති තැනක් තියනව නම් අපිට කියන්න.හොදම දේ තමා  BufferedReader එක යොදා ගෙන තවත් ලියන්න.එහෙනම් අදට නවතිනවා.තවත් පාඩමකින් අපි ලගදීම හමුවෙමු.

By Hasitha Thamaranga

























No comments:

Post a Comment