Javaالكلاس Properties في جافا
- مقدمة
- كونستركتورات الكلاس Properties
- دوال الكلاس Properties
- أمثلة شاملة
مقدمة
الكلاس Properties يرث من الكلاس Hashtable و هو يستخدم أيضاً لتخزين العناصر بشكل Key / Value.
بما أنه يرث من الكلاس Hashtable, فهذا يعني أنه يملك جميع الدوال الموجودة فيه.
الفرق الأساسي بين الكلاس Properties و الكلاس Hashtable هو أن الكلاس Properties يمكنه تخزين Keys و Values فقط من النوع String.
بالإضافةً إلى أن الكلاس Properties يحتوي على دوال جاهزة للتعامل مع الملفات.
كونستركتورات الكلاس Properties
الجدول التالي يحتوي على جميع الكونستركتورات الموجودين في الكلاس Properties.
الكونستركتور مع تعريفه | |
---|---|
1 | public Properties() هذا الكونستركتور الإفتراضي في الكلاس Properties, يستخدم لإنشاء كائن نوعه Properties. |
2 | public Properties(Properties defaultProperty)
يستخدم هذا الكونستركتور لإنشاء كائن نوعه Properties يملك عناصر مسبقة من كائن الـ Properties الذي نمرره كـ Argument. سيتم اللجوء إلى الكائن defaultProperty عند البحث عن قيمة مفتاح غير موجود في كائن الـ Properties. |
دوال الكلاس Properties
الجدول التالي يحتوي على جميع دوال الكلاس Properties.
الدالة مع تعريفها | |
---|---|
1 | public String getProperty(String key)
ترجع قيمة المفتاح الذي نمرره لها كـ Argument. في حال كان كائن الـ Properties لا يحتوي على المفتاح الذي مررناه لها, ترجع القيمة null. ملاحظة: في حال كان كائن الـ Properties يملك كائن Properties إفتراضي يحتوي على المفتاح المطلوب و الذي لم يتم العثور عليه في كائن الـ Properties الذي قام باستدعائها, عندها سيتم إرجاع قيمته التي تم إيجادها في كائن الـ Properties الإفتراضي. |
2 | public String getProperty(String key, String defaultProperty)
ترجع قيمة المفتاح الذي نمرره لها مكان الباراميتر key. في حال كان كائن الـ Properties لا يحتوي على المفتاح الذي مررناه لها, ترجع قيمة الـ defaultProperty. |
3 | public void(PrintStream streamOut)
تنسخ محتوى كائن الـ Properties بالكامل في الملف الذي يشير له كائن الـ PrintStream. تنسخ محتوى كائن الـ Properties الإفتراضي أيضاً. |
4 | public void(PrintWriter streamOut)
تنسخ محتوى كائن الـ Properties بالكامل في الملف الذي يشير له كائن الـ PrintWriter. تنسخ محتوى كائن الـ Properties الإفتراضي أيضاً. |
5 | public void load(InputStream streamIn) throws IOException تنسخ محتوى الملف الذي يشير له كائن الـ InputStream في كائن الـ Properties. |
6 | public Enumeration propertyNames() ترجع كائن نوع Enumeration يحتوي على جميع مفاتيح كائن الـ Properties. |
7 | public Object setProperty(String key, String value)
تستخدم لتبديل قيمة عنصر معين من عناصر كائن الـ Properties من خلال مفتاحه. و هي ترجع قيمة المفتاح القديمة, أو ترجع null في حال كان الـ key الموضوع غير موجود و عندها سيتم إضافة الـ key و الـ value كعنصر جديد في كائن الـ Properties. الباراميتر key هو المفتاح الذي سيتم تبديل قيمته. الباراميتر value هو القيمة الجديدة التي ستعطى للمفتاح. |
8 | public void store(OutputStream streamOut, String comments)
تنسخ محتوى الـ Properties بالكامل في الملف الذي يشير له كائن الـ OutputStream. مع إضافة تعليقات فوق المحتوى. تنسخ محتوى الـ Properties الإفتراضي أيضاً. الباراميتر comments عبارة عن التعليقات التي سيتم إضافتها فوق محتوى كائن الـ Properties. |
9 | public void store(Writer streamOut, String comments)
تنسخ محتوى الـ Properties بالكامل في الملف الذي يشير له كائن الـ Writer, مع إضافة تعليقات فوق المحتوى. تنسخ محتوى الـ Properties الإفتراضي أيضاً. الباراميتر comments عبارة عن التعليقات التي سيتم إضافتها فوق محتوى كائن الـ Properties. |
أمثلة شاملة
في كل مثال موضوع استخدامنا كونستركتور مختلف و دوال جديدة.
المثال الأول
في المثال التالي قمنا بتعريف كائن نوعه Properties, إسمه h, ثم أدخلنا فيه 12 عنصر.
بعدها قمنا بتخزين جميع المفاتيح في كائن نوعه Enumeration, إسمه keys.
و قمنا أيضاً بتخزين جميع القيم في كائن نوعه Enumeration, إسمه values.
بعدها عرضناهم كجدول يتألف من عامودين من خلال الحلقة while.
في الأخير قمنا بالبحث عن قيمة مفتاحين, واحد موجود و آخر غير موجود في الكائن الـ h.
سنحصل على النتيجة التالية عند التشغيل.
المثال الثاني
في المثال التالي قمنا بتعريف كائن نوعه Properties, إسمه defaultNumbers, ثم أدخلنا فيه 10 عناصر.
بعدها قمنا بتعريف كائن آخر نوعه Properties, إسمه, ثم أدخلنا فيه أيضاً 10 عناصر.
الكائن arabicNumbers يستخدم الكائن defaultNumbers كـ Properties إفتراضي.
في الأخير قمنا بالبحث في الكائن arabicNumbers عن مفتاحين, واحد يملكه و الآخر يملكه إفتراضياً.
سنحصل على النتيجة التالية عند التشغيل.
المثال الثالث
في المثال التالي قمنا بتعريف كائن نوعه Properties, إسمه names, الهدف منه تخزين الأسماء بالإنجليزية و العربية, ثم أدخلنا فيه 5 عناصر.
في الأخير قمنا بالبحث في نسخ محتوى الكائن names في ملف جديد إسمه ar-en-names.txt.
بعد تشغيل البرنامج, قم بفتح الملف ar-en-names.txt و ستجد النص التالي بداخله التالية.