Thursday, June 17, 2010

ජාවා වැඩසටහනකින් Keyboard Inputs ලබාගන්නා අයුරු :: (Accessing the standard input stream)

ජාවා භාවිත යෙදුම්(Java Aplications)  Desktop applications හා Console applications  වශයෙන් මූලික ආකාර 2ක් තිබෙනවා .  Desktop applications සඳහා textbox වැනි component භාවිතාකර user inputs ලබාගන්න පුලුවන් මේ සඳහා awt හා swing ලෙස ජාවා පැකේජ 2ක් හඳුන්වාදී තිබෙනවා. නමුත් console application යනු console එක(windows වලදී command prompt එක) ක්‍රියාකරන ආකාරය අනුව කොන්සෝල් එකෙදී inputs ලබාගැනීමට වන්නේ keyboad එක මගින් ලබාදෙන string එකක් වශයෙන්. අපි අද පාඩමෙන් අධ්‍යයනය කරන්නේ කොන්සෝල් එක මගින් user input එකක් ලබාගන්නා අයුරුයි.

keyboard එකකින් ලබාදෙන දත්ත ජාවා තුලදී stream එකක් ලෙස සලකනවා. ඒ විතරක් නොවෙයි file data සහ network connection යනාදියත් ජාවා තුලදී stream එකක් ලෙස සලකනවා. ජාවා තුල භාවිතාවන මූලිකම stream වර්ග 2 තමයි byte streams සහ character streams.

අපි දැන් සරළ ජාවා වැඩසටහනක් මගින් බලමු ජාවා වලදී stream යොදාගෙන keyboard input එකක් ලබාගන්නා ආකාරය.
KeybIn.java
import java.io.*;

public class KeybIn{ 
 public static void main(String args[]) throws IOException{
  String name;
  InputStreamReader myIsr=new InputStreamReader(System.in);
  BufferedReader myBr=new BufferedReader(myIsr);
  
  System.out.print("What is your name : " );
  name=myBr.readLine();
  
  System.out.println("Your name is : "+ name);
  
 }
}
දැන් අපි ඉහත වැඩසටහන අධ්‍යයනය කරමු.
Line1 : මෙම වගන්තිය මගින් සිදුකරනුයේ IO නම් ජාවා පැකේජ් එකේ තිබෙන ඕනෑම class එකක් හෝ සියල්ල අපගේ වැඩසටහන තුලදී භාවිතා විය හැකිය යන්න සඳහන් කිරීමයි.

Line4 : main method එකෙහි throws IOException යන්නෙන් විධාන කරන්නේ input හෝ output exception එකක්(දෝශයක් යයි කියමු) පැමිණියහොත් එය නොසලකා හරින්න(ignore) යන්නයි.

Line6 : මෙහිදී සිදුකරන්නේ System.in නොහොත් standard input stream එකෙන් දත්ත bytes වශයෙන් කියවා characters බවට පත්කලහැකි object එකක් සෑදීමයි. සාමාන්‍යයෙන් standard input stream එක යනු keyboad input strem එකයි.

Line7 : මෙහිදී සිදුකරන්නේ ඉහත සාදන ලද InputStremaReader object එක මගින් එකතුකරන ලද characters එකතු කර තනි පේලියක් සෑදිය හැකි BufferedReader object එකක් සෑදීමයි.

Line10 : මෙහිදී කොන්සෝල් එකෙන් string එකක් read කිරීම සිදුකරනවා.

ඉහත ආකාරයේ ව්‍යුහයක් යොදාගනිමින් ජාවා තුලදී key board input එකක් ලබාගන්න පුලුවන්. 
ප්‍රතිඵලය :

6 comments: