জাভা ডেভেলপারদের ফাইলের সাথে কাজ করতে সক্ষম করে। এমন একটি ক্ষেত্রে, ' ইনপুট স্ট্রিম ” ক্লাস কার্যকর হয় যা নির্দিষ্ট ফাইলের বিষয়বস্তু পড়তে সাহায্য করে এবং সেই সাথে থাকা বাইট বিশ্লেষণ করে। এর ফলে মেমরির সমস্যাগুলি মোকাবেলা করা হয় এবং প্রয়োজনীয় ফাইলের বিষয়বস্তু দক্ষতার সাথে ফিরিয়ে দেওয়া হয়।
এই লেখাটি জাভাতে 'ইনপুটস্ট্রিম' এর কাজ সম্পর্কে বিস্তারিতভাবে বর্ণনা করবে।
জাভা ইনপুটস্ট্রিম কিভাবে কাজ করে?
'এর 'ইনপুটস্ট্রিম' ক্লাস java.io ” প্যাকেজটি একটি বিমূর্ত সুপারক্লাসের সাথে মিলে যায় যা নির্দিষ্ট ফাইলের বিপরীতে বাইট সমন্বিত একটি ইনপুট স্ট্রিম প্রদান করে।
ইনপুটস্ট্রিমের সাবক্লাস
'ইনপুটস্ট্রিম' কার্যকারিতা প্রয়োগ করার জন্য, এর নিম্নলিখিত উপশ্রেণীগুলি ব্যবহার করা যেতে পারে:
-
- ফাইলইনপুটস্ট্রিম
- অবজেক্ট ইনপুটস্ট্রিম
- ByteArrayInputStream
এটি এমন যে এই সাবক্লাসগুলি 'ইনপুটস্ট্রিম' ক্লাসকে প্রসারিত করে।
ইনপুটস্ট্রিমের পদ্ধতি
'ইনপুটস্ট্রিম' ক্লাসে বিভিন্ন পদ্ধতি রয়েছে যা এর সাবক্লাস দ্বারা প্রয়োগ করা হয়। নিম্নলিখিত কিছু সর্বাধিক ব্যবহৃত পদ্ধতি রয়েছে:
পদ্ধতি | কার্যকারিতা |
পড়ুন() | এটি ইনপুট স্ট্রীম থেকে ডেটার একটি বাইট পড়ে।
|
পড়ুন(বাইট[] অ্যারে) | এটি স্ট্রীম থেকে বাইটগুলিও পড়ে এবং তাদের লক্ষ্য অ্যারেতে সংরক্ষণ করে।
|
স্কিপ() | এই পদ্ধতিটি ইনপুট স্ট্রীম থেকে নির্দিষ্ট সংখ্যক বাইট এড়িয়ে যায়/বাদ দেয়।
|
উপলব্ধ() | এটি ইনপুট স্ট্রীমে থাকা বাইট দেয়। |
রিসেট() | এটি স্ট্রিম পয়েন্টে অ্যাক্সেস দেয় যেখানে চিহ্ন সেট করা হয়েছিল।
|
চিহ্ন() | এই পদ্ধতিটি স্ট্রীমের অবস্থান চিহ্নিত করে যতক্ষণ পর্যন্ত ডেটা পড়া হয়েছে।
|
মার্ক সমর্থিত() | স্ট্রীমে 'মার্ক()' এবং 'রিসেট()' পদ্ধতি সমর্থিত/সামঞ্জস্যপূর্ণ কিনা তা বিশ্লেষণ করে।
|
উদাহরণে যাওয়ার আগে, 'ইনপুটস্ট্রিম' এবং এর সাবক্লাসের সাথে কাজ করতে নিম্নলিখিত প্যাকেজগুলি আমদানি করুন:
java.io.InputStream আমদানি করুন;
উদাহরণ: জাভাতে ইনপুটস্ট্রিমের কাজ করা
এই উদাহরণটি 'ইনপুটস্ট্রিম' পদ্ধতির মাধ্যমে ফাইলের বিষয়বস্তু পড়ার মাধ্যমে 'ইনপুটস্ট্রিম' এর কাজকে চিত্রিত করে:
পাবলিক ক্লাস ইনপুটস্ট্রিম {পাবলিক স্ট্যাটিক অকার্যকর প্রধান ( স্ট্রিং আর্গস [ ] ) {
বাইট [ ] givearray = নতুন বাইট [ পঞ্চাশ ] ;
চেষ্টা করুন {
ইনপুটস্ট্রিম রিডডেটা = নতুন ফাইলইনপুটস্ট্রিম ( 'readfile.txt' ) ;
System.out.println ( 'ফাইলের মধ্যে বাইট ->' + readData.available ( ) ) ;
readData.read ( দেওয়া অ্যারে ) ;
System.out.println ( 'ফাইল ডেটা পড়ুন:' ) ;
স্ট্রিং ধারণকারী ডেটা = নতুন স্ট্রিং ( দেওয়া অ্যারে ) ;
System.out.println ( ডেটা ধারণ করে ) ;
readData.close ( ) ;
}
ধরা ( ব্যতিক্রম ছাড়া ) {
except.getStackTrace ( ) ;
}
} }
উপরের কোড লাইন অনুযায়ী, নীচের-উল্লেখিত পদক্ষেপগুলি সম্পাদন করুন:
-
- প্রথমে, একটি 'বাইট' অ্যারে তৈরি করুন যাতে সর্বাধিক ' পঞ্চাশ 'পঠিত ফাইলে বাইট মান।
- পরবর্তী ধাপে, একটি তৈরি করুন ' ইনপুট স্ট্রিম ''FileInputStream' ব্যবহার করে এবং সংশ্লিষ্ট 'এর মাধ্যমে নির্দিষ্ট ফাইলে উপলব্ধ বাইট ফেরত দিন উপলব্ধ() 'পদ্ধতি।
- এর পরে, ' ব্যবহার করে ইনপুট স্ট্রীম থেকে বাইটগুলি পড়ুন পড়ুন() 'পদ্ধতি।
- এখন, বাইট অ্যারেকে একটি স্ট্রিং-এ রূপান্তর করুন এবং ফাইলের বিষয়বস্তু প্রদর্শন করুন।
- অবশেষে, যুক্ত ব্যবহার করে রিড ফাইলটি বন্ধ করুন ' বন্ধ() 'পদ্ধতি।
আউটপুট
এই ফলাফলে, এটি বোঝানো যেতে পারে যে ফাইলে বাইট সংখ্যা অর্থাৎ, বিষয়বস্তু দ্বারা জমে থাকা স্থান বাইট অ্যারেতে সর্বাধিক পরিসরের সাথে সঙ্গতিপূর্ণ হিসাবে ফেরত দেওয়া হয় অর্থাৎ '50'৷ এছাড়াও, ফাইলের বিষয়বস্তু যথাযথভাবে ফেরত দেওয়া হয়।
ফাইল সামগ্রী
একটি ওভারভিউ পেতে ' স্কিপ() ' এবং ' রিসেট() 'পদ্ধতি, নিম্নলিখিত প্রদর্শন বিবেচনা করুন:
এই দৃষ্টান্তে, 'skip()' পদ্ধতিটি নির্দিষ্ট সংখ্যক বাইটকে এড়িয়ে যায় যেমন, ' 5 -> জাভা ” শুরু থেকে ফাইলের বিষয়বস্তু থেকে। 'রিসেট()' পদ্ধতিটি স্ট্রীমটিকে রিসেট করে।
উপসংহার
দ্য ' ইনপুট স্ট্রিম 'এর ক্লাস' java.io ” প্যাকেজ হল একটি বিমূর্ত সুপারক্লাস যা ফাইল ডেটা পড়ার জন্য ব্যবহৃত বাইটের একটি ইনপুট স্ট্রিমের সাথে মিলে যায়। এই শ্রেণীতে বিভিন্ন পদ্ধতি রয়েছে যা প্রয়োজন অনুযায়ী কার্যকরভাবে ফাইল পড়ার পদ্ধতিতে সহায়তা করে। এই ব্লগটি জাভাতে 'ইনপুটস্ট্রিম' এর উদ্দেশ্য এবং কাজ প্রদর্শন করেছে।