مفهوم الـ Serialization و الـ Deserialization في لغة البرمجة جافا

اقرأ في هذا المقال


مفهوم الـ Serialization و الـ Deserialization في لغة البرمجة جافا

تتيح لغة البرمجة جافا (Java) للمبرمجين من استخدم آلية تسمى التسلسل أو (Serialization)، والتسلسل هو عبارة عن عملية يتم من خلالها تحويل حالة الكائن إلى تنسيق يمكن نقله، والتي يتم من خلالها حفظ حالة الكائن الحالية بداخل ملف، أي يتم إنشاء نسخة مطابقة من الكائن الموجود في الذاكرة ومن ثم وضعها في ملف خارجي، وعكس التسلسل هو إلغاء التسلسل (Deserialization)،  والذي يعني استرجاع حالة الكائن الموجودة في ملف.

أهمية الـ Serialization في لغة البرمجة جافا

تكمن أهمية مفهوم التسلسل في عدة أمور وفيما يلي أهمها:

  • حفظ حالة الكائن الذي تم إنشاؤه في الذاكرة في ملف خارجي، ليسهل استرجاعها.
  • يمكن للمبرمج من استخدام الكائنات المحفوظة في ملف لإنشاء كائنات جديدة في الذاكرة.
  • يمكن للمبرمج القيام بمشاركة حالة الكائن عبر شبكة معينة، حيث أنه يمكن استخدام الملف الذي تم حفظه فيه حالة الكائن لخلق الكائن في جهاز آخر.
  • يمكن للمبرمج من خلال التسلسل القيام بتخزين الصور في قواعد البيانات.

خطوات إجراء الـ Serialization في لغة البرمجة جافا

لتحقيق مفهوم التسلسل (Serialization) في لغة البرمجة جافا فإنه يجب استخدام الكلاس  (ObjectOutputStream) وذلك لإنشاء نسخة من الكائن الموجود في الذاكرة و وضعها في ملف، ولتحقيق الـ (Deserialization) يتم استخدام الكلاس (ObjectInputStream). وفيما يلي خطوات (Serialization) في لغة البرمجة جافا:

  • الكائن الذي يريد المبرمج حفظ حالته يجب أن يكون مشتق من كلاس يفعل
    (implements) للإنترفيس (Serializable).
  • بعد ذلك يتم إنشاء ملف إمتداده (ser.) بواسطة الكلاس (FileOutputStream).
  • من ثم يتم تجهيز كائن من الكلاس (ObjectOutputStream)
    الذي يستخدم لكتابة حالة الكائن في الملف.
  • بعد ذلك يتم نسخ حالة الكائن الموجود في الذاكرة في هذا الملف عن طؤيق استخدام  الدالة (()writeObject).

خطوات إجراء الـ Deserialization في لغة البرمجة جافا

لإجراء ال (Deserialization) أو استرجاع حالة الكائن التي تم حفظها في ملف معين يجب على المبرمج القيام بما يلي:

  • في البداية يتم إنشاء كائن فارغ من نفس نوع الكائن الذي يرغب المبرمج باسترجاع حالته من الملف.
  • يتم تجهيز كائن من الكلاس (FileInputStream) والذي يستخدم لإدخال بيانات ملف محدد في الذاكرة.
  • بعد ذلك يتم تجهيز كائن من الكلاس  (ObjectInputStream).
  • ومن ثم يتم قراءة حالة الكائن بواسطة الدالة (()readObject) ومن ثم يتم تخزينها في الكائن الفارغ الذي قام المبرمج بإنشائه في الخطوة الأولى.

شارك المقالة: