التعامل مع ملف الخصائص Java Properties file
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1 • شاطر
التعامل مع ملف الخصائص Java Properties file
بسم الله الرحمن الرحيم
أهلا بكم
ملف الخصائص Properties file هو أحد الملفات المهمة التى يمكنك إنشائها لتخزين بيانات التطبيق الخاص بك حيث تقدم الفئة Properties class بعض الاساليب و الطرق التى من خلالها نستطيع كتابة ملف الخصائص والذى يتالف من معلمات .
حيث يتم تخزين كل معلمة كزوج من السلاسل النصية ، واحد لتخزين اسم المعلمة (وتسمى مفتاح key)، والآخرى لتخزين القيمة value فى هذا المقال سوف نتعرف سويا على كيفية إنشاء و قراءة هذا الملف
1_سنقوم بإنشاء ملف نصى فى مسار التطبيق و ليكن بإسم config.properties
2_ لكتابة ملف الخصائص يجب إتباع الخطوات التالية :
- إستيراد الطبقات اللازمة للعمل :
- الكود:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;
- إنشاء مثيل جديد من الكائن Properties و الاعلان عن الكائن OutputStream :
- الكود:
Properties prop = new Properties();
OutputStream output = null;
- تحديد مسار ملف الخصائص config.properties :
- الكود:
output = new FileOutputStream("config.properties");
- إستخدام الطريقة setProperty لتعين مفتااح الخاصية و قيمتها
- الكود:
prop.setProperty("database", "localhost");
prop.setProperty("dbuser", "mkyong");
prop.setProperty("dbpassword", "password");
- إستخدام الطريقة store لتخزين و اضافة البيانات فى ملف الخصائص
- الكود:
prop.store(output, null);
المثال كاملا لكتابة ملف الخصائص على النحو التالى :
- الكود:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;
public class App {
public static void main(String[] args) {
Properties prop = new Properties();
OutputStream output = null;
try {
output = new FileOutputStream("config.properties");
prop.setProperty("database", "localhost");
prop.setProperty("dbuser", "mkyong");
prop.setProperty("dbpassword", "password");
rop.store(output, null);
} catch (IOException io) {
io.printStackTrace();
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
أما لقراءة ملف الخصائص هو استخدام الطريقة void load(InputStream reader) لتحميل اولا بيانات الملف فى الكائن InputStream ثم استخدام الطريقة getProperty لقرائتها و ذلك على النحو التالى :
- الكود:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class App {
public static void main(String[] args) {
Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream("config.properties");
prop.load(input);
System.out.println(prop.getProperty("database"));
System.out.println(prop.getProperty("dbuser"));
System.out.println(prop.getProperty("dbpassword"));
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
تحياتى لكم
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
مجهود رائع استاذي العظيم
كالعادة شرح رائع ومفهوم ...
لدي سؤال ماذا يفيدنا هذا الملف ؟ اسف لقلة خبرتي ومعلوماتي لا زلت احاول التعلم منكم
لدي سؤال ماذا يفيدنا هذا الملف ؟ اسف لقلة خبرتي ومعلوماتي لا زلت احاول التعلم منكم
alkomait- ..
- تاريخ التسجيل : 27/02/2016
المساهمات : 19
النقاط : 28
التقيم : 1
الدولة :
الجنس :
رد: التعامل مع ملف الخصائص Java Properties file
alkomait كتب:كالعادة شرح رائع ومفهوم ...
لدي سؤال ماذا يفيدنا هذا الملف ؟ اسف لقلة خبرتي ومعلوماتي لا زلت احاول التعلم منكم
أهلا وسهلا بك اخى الكريم و يسرى تعليقا و مرورك و أعلم أن العلم خزائن و مفتاحه السؤال
أما بالنسبة لاستفسارك ...نفترض أنك قمت بانشاء تطبيق ما و تريد أن تجعل المستخدم قادر على تغير بعض من خصائص و اعدادت هذا التطبيق كتغير لون خلفية شاشة أو تغير حجم و نوع و لون الخط المستخدم أو تغير ايقونة أحد القوائم او الازرار ....الخ من الخصائص ...ماذا ستفعل ؟
فى العادة نستخدم الشفرة التالية لاضافة ايقونة لزر امر مثلا :
- الكود:
jButton1.setIcon(new javax.swing.ImageIcon("C:\\user-icon.png"));
و بالتالى اذا اردت ان تجعل المستخدم قادر على تغير تلك الايقونة فمن البديهى استخدام عنصر التحكم jfilechooser واستخدام الشفرة التالية لتغير الايقون :
- الكود:
int result = jFileChooser1.showOpenDialog(null);
if (result == jFileChooser1.APPROVE_OPTION) {
File selectedFile = jFileChooser1.getSelectedFile();
jButton1.setIcon(new javax.swing.ImageIcon(selectedFile.getAbsolutePath()));
و النتيجة سيتم تغير الايقونة بنجاح .... لكن ماذا لو قام المستخدم باغلاق التطبيق و إعادة فتحته مرة أخرى ؟.....ستجد أن الايقونة القديمة لزر الامر قد ظهرت مرة اخرى و الايقونة التى تم اختيارها كانها لم تكن ...
و لحل تلك المعضلة هو استخدامك لملف الخصائص هذا الذى يمكنك من تخزين اى بيانات نصية لاعدادات تطبيقك ..... وبالتالى سوف نستخدم الشفرة التالية لاضافة ايقونة لزر الامر عوضا عن الكود السابق هو تخزين ما يقوم المستخدم باختيارة من صورة فى ملف الخصائص على النحو التالى :
- الكود:
int result = jFileChooser1.showOpenDialog(null);
if (result == jFileChooser1.APPROVE_OPTION) {
try {
File selectedFile = jFileChooser1.getSelectedFile();
output = new FileOutputStream("config.properties");
prop.setProperty("icon",selectedFile.getAbsolutePath());
prop.store(output, null);
}
و عند تطبيق الايقونة لزر الامر نستخدم الطريقة getProperty للحصول على الايقون بدل من استخدام المسار المطلق C:\\user-icon.png على النحو التالى :
- الكود:
InputStream input = null;
input = new FileInputStream("config.properties");
prop.load(input);
jButton1.setIcon(new javax.swing.ImageIcon(prop.getProperty("icon")));
وهكذا تكون استخدم ملف الخصائص لحفظ اى اعدادات يقوم بها المستخدم ...قس على ذلك ايضا تغير لون خلفية الشاشة ,حجم الخط ,لونه ,نوعه ,وايضا لو كنت تسخدم تطبيق باكثر من لغة فيجب ان يكون له ملف خصائص يستطيع المستخدم التبديل بين لغة و اخرى ....فمثلا لو كان واجهة التطبيق باللغة الانجليزية و به خيار لعرض العربية بدلا منها .....فبدون ملف الخصائص سوف تظهر واجهة التطبيق باللغة العربية ان اردت ذلك لكن عند اغلاق التطبيق و اعادة فتحته سيتم عرض الواجهة الافتراضية للتطبيق وهى اللغة الانجليزية مثلا ...
وأخيرا اتمنى ان اكون استطعت ايضاح الفكرة
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: التعامل مع ملف الخصائص Java Properties file
تبارك الله استاذ احمد مجهود رائع وصلت الفكرة بوضوح شكرا لك وبانتظار كل جديدأحمد مناع كتب:
أهلا وسهلا بك اخى الكريم و يسرى تعليقا و مرورك و أعلم أن العلم خزائن و مفتاحه السؤال
أما بالنسبة لاستفسارك ...نفترض أنك قمت بانشاء تطبيق ما و تريد أن تجعل المستخدم قادر على تغير بعض من خصائص و اعدادت هذا التطبيق كتغير لون خلفية شاشة أو تغير حجم و نوع و لون الخط المستخدم أو تغير ايقونة أحد القوائم او الازرار ....الخ من الخصائص ...ماذا ستفعل ؟
alkomait- ..
- تاريخ التسجيل : 27/02/2016
المساهمات : 19
النقاط : 28
التقيم : 1
الدولة :
الجنس :
رد: التعامل مع ملف الخصائص Java Properties file
عظم الله اجرك اخى احمد على كل هذا المجهود
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
NEXT- الادارة
- تاريخ التسجيل : 18/02/2011
المساهمات : 446
النقاط : 200660
التقيم : 28
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد