"আজ আমরা আরেকটি নতুন এবং আকর্ষণীয় বিষয় অন্বেষণ করছি: বৈশিষ্ট্য। "

"জাভাতে, প্রোগ্রামগুলিকে নমনীয় এবং সহজেই কাস্টমাইজ করা যায়, অর্থাৎ সহজেই কনফিগার করা যায়।"

"উদাহরণস্বরূপ, প্রতি ঘন্টায় একবার আপনার প্রোগ্রাম একটি নির্দিষ্ট ডিরেক্টরি থেকে ফাইলগুলি কপি করে, সেগুলিকে জিপ করে এবং সেগুলি আপনাকে ইমেলে পাঠায়৷ এটি করার জন্য, প্রোগ্রামটিকে সেই ডিরেক্টরিটি জানতে হবে যেখান থেকে ফাইলগুলি নেওয়া হবে এবং ইমেল ঠিকানা। যেখানে সেগুলি পাঠানো উচিত৷ এই ধরনের ডেটা সাধারণত অ্যাপ্লিকেশন কোডে নয়, একটি পৃথক বৈশিষ্ট্য ফাইলে সংরক্ষণ করা হয়৷"

এই ফাইলের ডেটা কী-মান জোড়া হিসাবে সংরক্ষণ করা হয়, একটি সমান চিহ্ন দ্বারা পৃথক করা হয়।

উদাহরণ
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc

"চিহ্নের বাম দিকে নাম (কী), ডানদিকে মান।"

"তাহলে এটি হ্যাশম্যাপের এক ধরণের পাঠ্য উপস্থাপনা?"

"সাধারণভাবে, হ্যাঁ।"

"এই ধরনের ফাইলগুলির সাথে কাজ করার সুবিধার জন্য, জাভা-এর একটি বিশেষ বৈশিষ্ট্য শ্রেণী রয়েছে৷ বৈশিষ্ট্য শ্রেণীটি হ্যাশটেবল<অবজেক্ট,অবজেক্ট>কে উত্তরাধিকার সূত্রে প্রাপ্ত হয়। এমনকি এটিকে একটি হ্যাশটেবল হিসাবেও ভাবা যেতে পারে যা একটি ফাইল থেকে নিজেকে লোড করতে পারে।"

"এখানে তার পদ্ধতি আছে:"

পদ্ধতি বর্ণনা
void load(Reader reader) রিডার অবজেক্ট দ্বারা উপস্থাপিত ফাইল থেকে বৈশিষ্ট্য লোড করে
void load(InputStream inStream) একটি ইনপুটস্ট্রিম অবজেক্ট দ্বারা উপস্থাপিত ফাইল থেকে বৈশিষ্ট্য লোড করে
void loadFromXML(InputStream in) একটি XML ফাইল থেকে বৈশিষ্ট্য লোড করুন
Object get(Object key) নির্দিষ্ট কী এর জন্য মান প্রদান করে। এই পদ্ধতিটি হ্যাশটেবল থেকে উত্তরাধিকারসূত্রে প্রাপ্ত
String getProperty(String key) কী দ্বারা একটি সম্পত্তি মান (স্ট্রিং) প্রদান করে।
String getProperty(String key, String defaultValue) এই ধরনের কোন কী না থাকলে কী বা ডিফল্ট ভ্যালু দিয়ে একটি সম্পত্তির মান প্রদান করে।
Set<String> stringPropertyNames() সমস্ত কীগুলির একটি তালিকা প্রদান করে

"অন্য কথায়, আপনাকে আসলে মাত্র দুটি অপারেশন করতে হবে- কিছু ফাইল থেকে একটি প্রোপার্টি অবজেক্টে ডেটা লোড করুন এবং তারপর getProperty () পদ্ধতি ব্যবহার করে এই বৈশিষ্ট্যগুলি পান ৷ ভাল, এবং ভুলে যাবেন না যে আপনি বৈশিষ্ট্য অবজেক্ট ব্যবহার করতে পারেন একটি হ্যাশম্যাপ ।"

"এখানে আরেকটি উদাহরণ:"

কোড
// The file that stores our project's properties
File file = new File("c:/data.properties");

// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));

// Get property values from the Properties object
String email = properties.getProperty("email");
String directory = properties.getProperty("directory");

// Get a numeric value from the Properties object
int maxFileSize = Integer.parseInt(properties.getProperty("max.size", "10000"));

"আহ। তাই আমরা একটি প্রপার্টি অবজেক্ট তৈরি করি, এবং তারপরে এটিতে একটি ফাইল পাস করি। লোড পদ্ধতিতে। এবং তারপরে আমরা গেটপ্রপার্টি কল করি। ঠিক আছে?"

"হ্যাঁ।"

"এবং আপনি এটাও বলেছেন যে এটি হ্যাশম্যাপ হিসাবে ব্যবহার করা যেতে পারে? আপনি কি বলতে চান?"

"প্রপার্টি ক্লাস হ্যাশটেবলের উত্তরাধিকারী, যা হ্যাশম্যাপের মতই, তবে এর সমস্ত পদ্ধতি সিঙ্ক্রোনাইজ করা হয়েছে। আপনি স্ক্রিনে বৈশিষ্ট্য ফাইল থেকে সমস্ত মানগুলি এইভাবে প্রদর্শন করতে পারেন:"

কোড
// Get the file with the properties
File file = new File("c:/data.properties");

// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));

// Run through all the keys and display their values on the console
for (String key : properties.stringPropertyNames())
{
 System.out.println(properties.get(key));
}

"আহ। মনে হচ্ছে সব কিছু জায়গায় পড়ে গেছে। ধন্যবাদ, ঋষি। আমি এই দুর্দান্ত জিনিসটি ব্যবহার করতে যাচ্ছি।"