প্রোগ্রামিং এর সময় আমাদের অনেক ক্ষেত্রে ইউজার ইনপুট নিয়ে কাজ করতে হয় । জাভা টিউটোরিয়ালের আজকের পর্বে আমরা জাভাতে কিভাবে ইউজার ইনপুট এবং আউটপুট নিয়ে কাজ করতে হয় সেই বিষয় নিয়ে আলোচনা করবো । জাভাতে অনেক ভাবে ইউজার ইনপুট নেয়া যায় যেমন java.util.Scanner কিংবা java.io.BufferedReader ক্লাস ব্যাবহার করে ইউজারের কাছে থেকে ডাটা ইনপুট নেয়া যায় । তাহলে দেখে নেয়া যাক
Scanner ক্লাস দিয়ে ইনপুট/আউটপুট
জাভার Util প্যাকেজের অন্তর্ভুক্ত Scanner ক্লাসে কিছু মেথড রয়েছে যেগুলোর মাধ্যমে আমরা বিভিন্ন টাইপের ডাটা ইনপুট হিসেবে নিতে পারি । মেথডগুলো হচ্ছে – String ইনপুট নেয়ার জন্য next( ) কিংবা nextLine( ), Integer ইনপুটের জন্য nextInt( ) , float ইনপুটের জন্য nextFloat( ) , byte ইনপুটের জন্য nextByte( ) , short ইনপুটের জন্য nextShort( ) , long ইনপুটের জন্য nextLong( ) এবং double টাইপের জন্য nextDouble( ) । একটা উদাহারন দেয়া যাক
import java.util.InputMismatchException; import java.util.Scanner; public class JavaInputOutput { public static void main(String[] args){ int numberInt; float numberFloat; String token; byte byteInput; short shortInput; long longInput; double dblInput; try{ Scanner input=new Scanner(System.in); System.out.println("Enter first string: "); token=input.next(); System.out.println("Enter integer number: "); numberInt=input.nextInt(); System.out.println("Enter float number: "); numberFloat=input.nextFloat(); System.out.println("Enter byte number: "); byteInput=input.nextByte(); System.out.println("Enter short number: "); shortInput=input.nextShort(); System.out.println("Enter long number: "); longInput=input.nextLong(); System.out.println("Enter double number: "); dblInput=input.nextDouble(); //ouputs System.out.println("==============Outputs=========="); System.out.println("String output: " + token); System.out.println("Integer output : " + numberInt); System.out.println("Float output : " + numberFloat); System.out.println("Byte output : " + byteInput); System.out.println("Short output : " + shortInput); System.out.println("Long output : " + longInput); System.out.println("Double output : " + dblInput); input.close(); }catch(InputMismatchException exception){ System.out.println("Please enter a valid number !"); } } }
আউটপুট
Enter first string: text Enter integer number: 10 Enter float number: 25.2558 Enter byte number: 102 Enter short number: 500 Enter long number: 105646 Enter double number: 3546976543 ==============Outputs========== String output: text Integer output : 10 Float output : 25.2558 Byte output : 102 Short output : 500 Long output : 105646 Double output : 3.546976543E9
BufferedReader ক্লাস দিয়ে ইনপুট/আউটপুট
BufferedReader এবং InputStreamReader ক্লাস দিয়ে ইনপুট নেয়ার ক্ষেত্রে কিছু মেথডের ব্যাপার থাকে যেমন read( ), readLine( ) । আর Integer , Float কিংবা Long , Short এইসব ডাটা পার্সিং এর জন্য Integer.parseInt(String param) , Float.parseFloat(String param), Long.parseLong(String param) ইত্যাদি ধরনের পার্সার আছে । উল্লেখ্য যে read( ) শুধুমাত্র ক্যারেক্টার টাইপ এবং readLine ( ) মেথড ইনপুটকে স্ট্রিং হিসেবে নেয় যার জন্য Integer , Float কিংবা যেকোনো সংখ্যা জাতীয় কোন ডাটার আউটপুট পেতে গেলে পার্সার ব্যাবহার করতে হয় । একটা উদাহারন দেয়া যাক
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BufferedInputOutput { public static void main(String[] args) throws IOException{ String stringInput; int numberInt; float numberFloat; short numberShort; byte numberByte; long numberLong; double numberDbl; char letter; try{ BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter string : "); stringInput=input.readLine(); System.out.println("Enter integer number : "); numberInt=Integer.parseInt(input.readLine()); System.out.println("Enter float number : "); numberFloat=Float.parseFloat(input.readLine()); System.out.println("Enter short number : "); numberShort=Short.parseShort(input.readLine()); System.out.println("Enter byte number : "); numberByte=Byte.parseByte(input.readLine()); System.out.println("Enter long number : "); numberLong=Long.parseLong(input.readLine()); System.out.println("Enter double number : "); numberDbl=Double.parseDouble(input.readLine()); System.out.println("Enter a character : "); letter=(char)input.read(); System.out.println(); System.out.println("==========outputs============"); System.out.println("String output : " + stringInput); System.out.println("Integer output : " + numberInt); System.out.println("Float output : " + numberFloat); System.out.println("Short output : " + numberShort); System.out.println("Byte output : " + numberByte); System.out.println("Long output : " + numberLong); System.out.println("Double output : " + numberDbl); System.out.println("Character output : " + letter); }catch (NumberFormatException e){ System.out.printf("Enter a valid number !"); } } }
আউটপুট
Enter string : This is a string Enter integer number : 1546 Enter float number : 10.2545 Enter short number : 10 Enter byte number : 15 Enter long number : 354363569 Enter double number : 154.24564545 Enter a character : A ==========outputs============ String output : This is a string Integer output : 1546 Float output : 10.2545 Short output : 10 Byte output : 15 Long output : 354363569 Double output : 154.24564545 Character output : A
এছাড়াও DataInputStream ক্লাস দিয়ে ইনপুট / আউটপুটের কাজ করা যায় । এ ছিলো জাভা ইনপুট / আউটপুট নিয়ে একেবারে বেসিক কিছু কথা । আশা করি সবাই বুঝতে পেরেছেন । আজকে এই পর্যন্তই থাক । ভালো লাগলে শেয়ার করবেন