التعامل مع ملف الخصائص Java Properties file

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

التعامل مع ملف الخصائص Java Properties file

مُساهمة من طرف أحمد مناع في الإثنين أبريل 04, 2016 1:29 am

بسم الله الرحمن الرحيم

أهلا بكم 

ملف الخصائص 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();
         }
      }
   }

  }
}

تحياتى لكم

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

مجهود رائع استاذي العظيم

مُساهمة من طرف alkomait في الإثنين أبريل 04, 2016 10:02 pm

كالعادة شرح رائع ومفهوم ...
لدي سؤال ماذا يفيدنا هذا الملف ؟ اسف لقلة خبرتي ومعلوماتي لا زلت احاول التعلم منكم

alkomait
..
..

تاريخ التسجيل : 27/02/2016
المساهمات : 19
النقاط : 27
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: التعامل مع ملف الخصائص Java Properties file

مُساهمة من طرف أحمد مناع في الثلاثاء أبريل 05, 2016 6:18 pm

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")));

وهكذا تكون استخدم ملف الخصائص لحفظ اى اعدادات يقوم بها المستخدم ...قس على ذلك ايضا تغير لون خلفية الشاشة ,حجم الخط ,لونه ,نوعه ,وايضا لو كنت تسخدم تطبيق باكثر من لغة فيجب ان يكون له ملف خصائص يستطيع المستخدم التبديل بين لغة و اخرى ....فمثلا لو كان واجهة التطبيق باللغة الانجليزية و به خيار لعرض العربية بدلا منها .....فبدون ملف الخصائص سوف تظهر واجهة التطبيق باللغة العربية ان اردت ذلك لكن عند اغلاق التطبيق و اعادة فتحته سيتم عرض الواجهة الافتراضية للتطبيق وهى اللغة الانجليزية مثلا ...

وأخيرا اتمنى ان اكون استطعت ايضاح الفكرة

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: التعامل مع ملف الخصائص Java Properties file

مُساهمة من طرف alkomait في الثلاثاء أبريل 05, 2016 7:41 pm

أحمد مناع كتب:

أهلا وسهلا بك اخى الكريم و يسرى تعليقا و مرورك و أعلم أن العلم خزائن و مفتاحه السؤال 

أما بالنسبة لاستفسارك ...نفترض أنك قمت بانشاء تطبيق ما و تريد أن تجعل المستخدم قادر على تغير بعض من خصائص و اعدادت هذا التطبيق كتغير لون خلفية شاشة أو تغير حجم و نوع و لون الخط المستخدم أو تغير ايقونة أحد القوائم او الازرار ....الخ من الخصائص ...ماذا ستفعل ؟
تبارك الله استاذ احمد مجهود رائع وصلت الفكرة بوضوح شكرا لك وبانتظار كل جديد

alkomait
..
..

تاريخ التسجيل : 27/02/2016
المساهمات : 19
النقاط : 27
التقيم : 0
الدولة : سوريا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: التعامل مع ملف الخصائص Java Properties file

مُساهمة من طرف زهراء في الثلاثاء أبريل 05, 2016 7:50 pm

عظم الله اجرك اخى احمد على كل هذا المجهود

زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: التعامل مع ملف الخصائص Java Properties file

مُساهمة من طرف NEXT في الثلاثاء نوفمبر 08, 2016 7:21 am

Question Question Question Question Question

NEXT
الادارة
الادارة

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 378
التقيم : 10
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى