المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Serializable Interface


pagera
14-04-2005, 18:30
السلام عليكم
هذا الدرس سنتكلم فيه عن Serializable Object
Serializable interface لا يحوي ميتودات
هذا ال interface يمكننا من تخزين Object مهما كان نوعه ضمن ملف
في مثالنا سنستخدمه لتخزين غلاس يحوي على معلومات بسيطة
الخطوات
1- انشاء Object يكون implements ل Serializable
على هذا الشكل

>>>>
public class MyInfo implements Serializable

{

String name ;
String address ;

public MyInfo(String name , String address)
{

setName(name);
setAddress(address);

}
public MyInfo()
{

this( "" , "");

}

public void setName(String n)
{
Name = n;
}
public void setAddress(String add)
{

address = add;

}

public String getAddress()
{

return address ;

}




Public String getName()
{

return name;

}

}


بعد أن انتهينا من انشاء ال Object الذي نريد أن نخزن فيه المعلومات
الآن نحتاج لانشاء غلاس آخر ليقوم بتخزين ال Object على الهادر

>>>>>>

Public class StoreMyInfo
{

MyInfo myInfo;
ObjectOutputStream output;


Public void store()
{

myInfo = new MyInfo("Pagera", "Syria");

try {

output = new ObjectOutputStream( new FileOutputStream("MyFile.dat"));

output.writeObject(myInfo);
output.flush;

output.close();

}
catch( Exception ioE)
{
ioE.printStackTrace();
}

}

عند تنفيذ StoreMyInfo Class
سيتم انشاء ملف يدعى MyFile.dat وسيتم تخزين ال Object الذي يحوي المعلومات ضمن هذا الملف
قكما رأينا أدخلنا المعلومات التي نريد أن نخزنها عن طريق ال constructer ليتم انشاء ال Object
يحوي على معلوماتنا وبعدها خزنا ال Object كما هو
.................................................. ......................

اذا أردنا أن نقرأ من هذا الملف

فعلينا انشاء Method لفتح وقراءة الملف الذي خزنا فيه ال MyInfo Object
على هذا الشكل
>>>>>>>

[LEFT]public void readMyInfo()
{

try {

ObjectInputStream input =
new ObjectInputStream(new FileInputStream("MyFile.dat"));

MyInfo myInfo = ( MyInfo ) input.readObject();


}
catch(IOException io)
{
io.printStackTrace();
}

System.out.println("MyName is " +myInfo.getName() );
System.out.println("MyAddress is " +myInfo.getAddress() );

}




وهكذا سيطبع لنا الاسم والعنوان

يتميز هذا ال Interface بسهولة التعامل معه أي اننا لا نهتم بالقراءة من الملف مباشرة
هنا نحن نقرأ ال Object بأكمله ومن ثم نحصل على المعلومات من خلال الميتودات التي
كتبناها بداخله ولا داعي للدخول بمشاكل قراءة الملف ك byte او غيره

أرجوا أن أكون قد وفقت بالشرح
اي استفسار انا جاهز

بتمنى تنحل مشكلة اظهار الكود يللي عم يظهر بشكل مخربط
او دلوني عل طريقة كرمال نزل الكود متل ما هو

وشكرا

Pagera

فادي عمروش
14-04-2005, 18:39
الله يعطيك العافية
أنا اتابع دروسك أول بأول ,...

شكرا لك