Properties ফাইল কি এবং কিভাবে কাজ করে?

Properties ফাইলের সাথে কাজ - জাভা ইন্টারন্যাশনালাইজেশন (Java Internalization) - Java Technologies

342

Properties ফাইল একটি সাধারণ ফাইল ফরম্যাট যা key-value পেয়ার সংরক্ষণ করতে ব্যবহৃত হয়। এটি মূলত কনফিগারেশন ডেটা বা প্রোপার্টি স্টোর করতে ব্যবহৃত হয়, যেমন ব্যাবহারকারী ইন্টারফেসের স্ট্রিং বা কনফিগারেশন সেটিংস। Java ইন্টারন্যাশনালাইজেশন এবং লোকালাইজেশন প্রক্রিয়ায়, Properties ফাইল ব্যবহার করা হয় আঞ্চলিক ভাষা এবং অন্যান্য স্থানীয় ভাষার জন্য ResourceBundle এর মাধ্যমে ডেটা সংরক্ষণ এবং অ্যাক্সেস করতে।

Properties ফাইল কি?

Properties ফাইল একটি সাধারণ টেক্সট ফাইল যেখানে key-value পেয়ারের মাধ্যমে ডেটা সংরক্ষিত থাকে। এটি সাধারণত .properties এক্সটেনশনে থাকে এবং ইংরেজি বা অন্য ভাষায় শব্দ বা বাক্য সংরক্ষণে ব্যবহৃত হয়।

Properties ফাইলের ধরন:

  • key: এটি একটি বিশেষ শব্দ বা প্যাটার্ন যা মান (value) অ্যাক্সেস করতে ব্যবহৃত হয়।
  • value: এটি key এর সাথে সম্পর্কিত মান বা ডেটা। এটি সাধারণত String হতে পারে।

Properties ফাইলের গঠন:

# এই একটি মন্তব্য
key1=value1
key2=value2
key3=value3

এখানে key1, key2 এবং key3 হল key, এবং তাদের সাথে সম্পর্কিত value1, value2 এবং value3 হল value

Properties ফাইলের প্রয়োজন:

  1. Localization (l10n):
    • প্রোগ্রাম বা অ্যাপ্লিকেশনকে একাধিক ভাষায় localize করার জন্য properties ফাইল ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি ইংরেজি ভাষার অ্যাপ্লিকেশনের জন্য English.properties ফাইল থাকতে পারে এবং অন্য ভাষার জন্য (যেমন বাংলায়) Bengali.properties ফাইল থাকতে পারে।
  2. Configuration:
    • অ্যাপ্লিকেশন কনফিগারেশনের জন্য এটি ব্যবহৃত হতে পারে যেমন সার্ভারের পোর্ট নম্বর, ইউজার পছন্দসমূহ ইত্যাদি।
  3. Resource Bundle:
    • Java ইন্টারন্যাশনালাইজেশন প্রক্রিয়ায় ResourceBundle এর মাধ্যমে এই properties ফাইল গুলি ব্যবহার করে স্থানীয় ভাষায় ডেটা লোড করা হয়।

Properties ফাইলের উদাহরণ:

English.properties

greeting=Hello
farewell=Goodbye
welcomeMessage=Welcome to our application!

Bengali.properties

greeting=হ্যালো
farewell=বিদায়
welcomeMessage=আমাদের অ্যাপ্লিকেশনে আপনাকে স্বাগতম!

এখানে দুটি আলাদা properties ফাইল তৈরি করা হয়েছে, একটি ইংরেজি এবং আরেকটি বাংলা ভাষার জন্য।

Java কোডে Properties ফাইল ব্যবহার:

Java এ Properties ক্লাস ব্যবহার করে properties ফাইল লোড করা এবং সেগুলির মান (value) অ্যাক্সেস করা যায়। এখানে একটি উদাহরণ দেওয়া হল।

import java.io.*;
import java.util.*;

public class PropertiesExample {
    public static void main(String[] args) {
        // ইংরেজি Properties ফাইল লোড করা
        Properties properties = new Properties();

        try {
            // ফাইল থেকে প্রোপার্টি লোড করা
            InputStream inputStream = new FileInputStream("English.properties");
            properties.load(inputStream);

            // properties ফাইল থেকে মান পড়া
            String greeting = properties.getProperty("greeting");
            String farewell = properties.getProperty("farewell");
            String welcomeMessage = properties.getProperty("welcomeMessage");

            System.out.println(greeting);  // Output: Hello
            System.out.println(farewell);  // Output: Goodbye
            System.out.println(welcomeMessage);  // Output: Welcome to our application!

            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • Properties ক্লাস ব্যবহার করে properties ফাইল লোড করা হচ্ছে এবং load() মেথড ব্যবহার করে ফাইলের ডেটা Properties অবজেক্টে সঞ্চিত হচ্ছে।
  • getProperty() মেথড ব্যবহার করে নির্দিষ্ট key এর জন্য value পড়া হচ্ছে।

ResourceBundle এবং Properties ফাইল:

Java ইন্টারন্যাশনালাইজেশন (i18n) প্রক্রিয়ায় ResourceBundle ব্যবহার করে স্থানীয় ভাষায় ডেটা পাওয়া যায়। ResourceBundle ক্লাস একটি properties ফাইল থেকে ডেটা লোড করার জন্য ব্যবহৃত হয় এবং প্রোগ্রামের বিভিন্ন অংশে স্থানীয় ভাষার স্ট্রিংস প্রদর্শন করে।

ResourceBundle উদাহরণ:

import java.util.*;

public class ResourceBundleExample {
    public static void main(String[] args) {
        // Locale তৈরি করা (বাংলা)
        Locale locale = new Locale("bn", "BD");
        
        // ResourceBundle লোড করা
        ResourceBundle resourceBundle = ResourceBundle.getBundle("Bengali", locale);

        // ResourceBundle থেকে মান (value) পড়া
        String greeting = resourceBundle.getString("greeting");
        String farewell = resourceBundle.getString("farewell");
        String welcomeMessage = resourceBundle.getString("welcomeMessage");

        System.out.println(greeting);  // Output: হ্যালো
        System.out.println(farewell);  // Output: বিদায়
        System.out.println(welcomeMessage);  // Output: আমাদের অ্যাপ্লিকেশনে আপনাকে স্বাগতম!
    }
}

ব্যাখ্যা:

  • ResourceBundle.getBundle() মেথড ব্যবহার করে Bengali.properties ফাইল থেকে ডেটা লোড করা হয়েছে।
  • getString() মেথডের মাধ্যমে properties ফাইল থেকে স্ট্রিং ডেটা প্রাপ্ত হচ্ছে।

Properties ফাইলের সুবিধা:

  1. Language Support:
    • এটি বিভিন্ন ভাষার জন্য আলাদা আলাদা properties ফাইল তৈরি করতে দেয়, যা ভাষার অনুবাদ সহজ করে।
  2. Simple Key-Value Structure:
    • key-value পেয়ারের মাধ্যমে ডেটা সঞ্চয় করা হয়, যা খুব সহজে ব্যবহৃত এবং পড়া যায়।
  3. Flexible Configuration:
    • অ্যাপ্লিকেশন কনফিগারেশন, ব্যাবহারকারীর পছন্দ, অথবা ভাষাগত ডেটা সহজে properties ফাইল ব্যবহার করে পরিচালনা করা যায়।

Properties ফাইলের সীমাবদ্ধতা:

  1. Plain Text:
    • Properties ফাইল শুধুমাত্র টেক্সট ফাইলের মধ্যে ডেটা সংরক্ষণ করতে পারে, এবং এর মধ্যে complex data structures সংরক্ষণ করা সম্ভব নয়।
  2. Encoding Issues:
    • স্থানীয় ভাষা সাপোর্টের জন্য সঠিক character encoding (যেমন UTF-8) ব্যবহার করতে হবে, নতুবা non-ASCII characters সঠিকভাবে প্রদর্শিত নাও হতে পারে।

  • Properties ফাইল Java-তে localization (l10n) এবং configuration management এর জন্য একটি গুরুত্বপূর্ণ উপকরণ।
  • এটি সহজে key-value pairs আকারে ডেটা সংরক্ষণ এবং পরিচালনা করার সুযোগ দেয়।
  • Java ResourceBundle এবং Properties ফাইল ব্যবহার করে আপনি বিভিন্ন ভাষায় ডেটা অনুবাদ এবং প্রদর্শন করতে পারেন, যা internationalization (i18n) এর জন্য অত্যন্ত গুরুত্বপূর্ণ।
Content added By
Promotion

Are you sure to start over?

Loading...