التنسيق الافتراضي
نسخة الكود كما يلي:
الطبقة العامة myClass تنفذ مسلسل {
...}
التسلسل:
نسخة الكود كما يلي:
ObjectOutputStream Output = جديد ObjectOutputStream (FileOutputStream جديد (OutputPath)) ؛
output.writeObject (myobject) ؛
هروب:
نسخة الكود كما يلي:
ObjectInputStream input = new ObjectInputStream (FileInputStream جديد (inputPath)) ؛
إرجاع (myClass) input.ReadObject () ؛
تنسيق JSON
استخدم حزمة جاكسون. جاكسون هي حزمة Java Json فعالة للغاية. يرجى الرجوع إلى الموقع الرسمي للوثائق والتنزيلات.
التسلسل
نسخة الكود كما يلي:
ObjectMapper mapper = new ObjectMapper () ؛
mapper.writeValue (ملف جديد (OutputPath) ، myobject) ؛
هروب:
نسخة الكود كما يلي:
إرجاع mapper.readvalue (ملف جديد (OutputPath) ، myclass.class) ؛
رمز الاختبار الكامل
نسخة الكود كما يلي:
استيراد java.io.file ؛
استيراد java.io.fileInputStream ؛
استيراد java.io.fileOutputStream ؛
استيراد java.io.ioException ؛
استيراد java.io.objectinputStream ؛
استيراد java.io.objectOutputStream ؛
استيراد java.io.serializable ؛
استيراد java.util.arraylist ؛
استيراد com.fasterxml.jackson.core.jsongenerationException ؛
استيراد com.fasterxml.jackson.core.jsonparsexception ؛
استيراد com.fasterxml.jackson.databind.jsonmappexception ؛
استيراد com.fasterxml.jackson.databind.objectMapper ؛
حديقة حيوان الفئة العامة تنفذ قابلة للتسلسل {
خاص ثابت نهائي طويل المسبانيويد = 1L ؛
كائن ثابت خاص mapper = ObjectMapper () جديد ؛
ثابت عام int maxanimalcount ؛
ArrayList العامة <string> الحيوانات ؛
Zoo () {{
الحيوانات = ArrayList جديد <string> () ؛
}
setmax الفراغ الثابت العام (int max) {
maxanimalcount = max ؛
}
/**
* إضافة حيوان إلى حيوانات الحيوانات.
* param AnimalName
*/
public void addanimal (String AnimalName) {
إذا (الحيوانات.
الحيوانات. add (AnimalName) ؛
}
@تجاوز
السلسلة العامة tostring () {
إرجاع "حديقة الحيوان: /n الحيوانات:" + الحيوانات. tostring () +
"/n maxanimalcount:" + maxanimalcount + "/n" ؛
}
/**
* إخراج التسلسل القياسي للملف في logpath.
* param logpath
*/
public void serializetolog (String logpath) {
ObjectOutputStream Output = NULL ؛
يحاول
{
الإخراج = ObjectOutputStream جديد (
FileOutputStream جديد (logPath)) ؛
output.writeObject (هذا) ؛
} catch (استثناء e) {
E.PrintStackTrace () ؛
} أخيراً {
يحاول {
output.close () ؛
} catch (ioException e) {
E.PrintStackTrace () ؛
}
}
}
/**
* إخراج JSON Serialization (باستخدام Jackson) للملف في logpath.
* param logpath
*/
public void serializejsontolog (سلسلة logpath) {
يحاول {
mapper.writevalue (ملف جديد (logpath) ، هذا) ؛
} catch (jsongenerationexception e) {
E.PrintStackTrace () ؛
} catch (jsonmappexception e) {
E.PrintStackTrace () ؛
} catch (ioException e) {
E.PrintStackTrace () ؛
}
}
/**
* Deserialize Asserialize مثيل حديقة للحيوانات من ملف في logpath.
* param logpath
* مثيل حديقة حيوانات RETURN
*/
Zoo Static Zoo Public DeserializeFromLog (String logpath) {
ObjectInputStream INPUT = NULL ؛
يحاول
{
الإدخال = ObjectInputStream جديد (
FileInputStream جديد (logpath)) ؛
إرجاع (حديقة الحيوان) input.ReadObject () ؛
} catch (استثناء e) {
E.PrintStackTrace () ؛
} أخيراً {
يحاول {
input.close () ؛
} catch (ioException e) {
E.PrintStackTrace () ؛
}
}
العودة لاغية.
}
/**
* json deserialize مثيل حديقة للحيوانات من ملف في logpath.
* param logpath
* @Regurn JSON Deserialized Zoo مثيل
*/
Zoo Zoo Public DeserializeJsonfromLog (سلسلة logpath) {
يحاول {
إرجاع mapper.readvalue (ملف جديد (logpath) ، zoo.class) ؛
} catch (jsonparseexception e) {
E.PrintStackTrace () ؛
} catch (jsonmappexception e) {
E.PrintStackTrace () ؛
} catch (ioException e) {
E.PrintStackTrace () ؛
}
العودة لاغية.
}
}
فئة zooserializetest {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
zoo zoo1 = new zoo () ؛
Zoo.SetMax (100) ؛
Zoo1.Addanimal ("Hamster") ؛
Zoo1.Addanimal ("Sheep") ؛
Zoo1.Serializetolog ("zoo1.log") ؛
zoo zoo2 = new zoo () ؛
Zoo.SetMax (200) ؛
Zoo2.Addanimal ("Tiger") ؛
Zoo2.Serializetolog ("zoo2.log") ؛
Zoo.SetMax (300) ؛
// هجر
zoo1 = zoo.deserializeFromLog ("zoo1.log") ؛
zoo2 = zoo.deserializeFromLog ("zoo2.log") ؛
System.out.println ("zoo1: /n" + zoo1) ؛
System.out.println ("zoo2: /n" + zoo2) ؛
// تسلسل إلى JSON
Zoo1.SerializeJSontolog ("zoo1.json") ؛
zoo1 = zoo.deserializeJsonfromLog ("zoo1.json") ؛
System.out.println ("zoo1 من json: /n" + zoo1) ؛
}
}