รูปแบบเริ่มต้น
การคัดลอกรหัสมีดังนี้:
คลาสสาธารณะ MyClass ใช้ serializable {
-
การทำให้เป็นอนุกรม:
การคัดลอกรหัสมีดังนี้:
ObjectOutputStream output = ใหม่ ObjectOutputStream (ใหม่ fileOutputStream (outputPath));
output.writeObject (myObject);
Deserialization:
การคัดลอกรหัสมีดังนี้:
ObjectInputStream input = new ObjectInputStream (ใหม่ FileInputStream (InputPath));
return (myclass) input.readobject ();
รูปแบบ JSON
ใช้แพ็คเกจแจ็คสัน แจ็คสันเป็นแพ็คเกจ Java JSON ที่มีประสิทธิภาพมาก โปรดดูเว็บไซต์อย่างเป็นทางการสำหรับเอกสารและการดาวน์โหลด
การทำให้เป็นอนุกรม
การคัดลอกรหัสมีดังนี้:
ObjectMapper mapper = new ObjectMapper ();
mapper.writevalue (ไฟล์ใหม่ (outputpath), myobject);
Deserialization:
การคัดลอกรหัสมีดังนี้:
ส่งคืน 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.jsonparseException;
นำเข้า com.fasterxml.jackson.databind.jsonmappingexception;
นำเข้า com.fasterxml.jackson.databind.objectmapper;
สวนสัตว์ระดับสาธารณะใช้ serializable {
ส่วนตัวคงที่สุดท้าย Long SerialVersionUid = 1L;
Mapper ObjectMapper ส่วนตัว = ObjectMapper ใหม่ ();
สาธารณะ int maxanimalcount;
arraylist สาธารณะ <String> สัตว์;
สวนสัตว์สาธารณะ () {
สัตว์ = new ArrayList <String> ();
-
โมฆะคงที่สาธารณะ setMax (int max) {
maxanimalcount = สูงสุด;
-
-
* เพิ่มสัตว์ในอาร์เรย์สัตว์
* @param AnimalName
-
โมฆะสาธารณะ addanimal (String imentname) {
if (iments.size () <maxanimalcount)
สัตว์ ADD (ชื่อสัตว์);
-
@Override
สตริงสาธารณะ toString () {
return "zoo: /n iments:" + iments.tostring () +
"/n maxanimalcount:" + maxanimalcount + "/n";
-
-
* การทำให้เป็นอนุกรมมาตรฐานเอาท์พุทไปยังไฟล์ที่ LogPath
* @param logpath
-
โมฆะสาธารณะ serializetolog (String logpath) {
ObjectOutputStream output = null;
พยายาม
-
เอาท์พุท = ใหม่ ObjectOutputStream (
ใหม่ fileOutputStream (logPath));
output.writeObject (นี่);
} catch (Exception e) {
E.PrintStackTrace ();
} ในที่สุด {
พยายาม {
output.close ();
} catch (ioexception e) {
E.PrintStackTrace ();
-
-
-
-
* เอาท์พุท JSON Serialization (ใช้ Jackson) ไปยังไฟล์ที่ LogPath
* @param logpath
-
โมฆะสาธารณะ serializeJSontolog (String logPath) {
พยายาม {
mapper.writevalue (ไฟล์ใหม่ (logpath), นี้);
} catch (jsongenerationException e) {
E.PrintStackTrace ();
} catch (jsonmappingexception e) {
E.PrintStackTrace ();
} catch (ioexception e) {
E.PrintStackTrace ();
-
-
-
* มาตรฐาน deserialize อินสแตนซ์ Zoo จากไฟล์ที่ LogPath
* @param logpath
* @return อินสแตนซ์ Zoo Deserialized
-
สวนสัตว์คงที่สาธารณะ deserializefromlog (String logpath) {
ObjectInputStream input = null;
พยายาม
-
input = new ObjectInputStream (
ใหม่ FileInputStream (logPath));
return (zoo) input.readobject ();
} catch (Exception e) {
E.PrintStackTrace ();
} ในที่สุด {
พยายาม {
input.close ();
} catch (ioexception e) {
E.PrintStackTrace ();
-
-
คืนค่า null;
-
-
* JSON deserialize อินสแตนซ์ ZOO จากไฟล์ที่ LogPath
* @param logpath
* @return json deserialized zoo อินสแตนซ์
-
สวนสัตว์คงที่สาธารณะ deserializejsonfromlog (สตริง logpath) {
พยายาม {
ส่งคืน mapper.readValue (ไฟล์ใหม่ (logpath), zoo.class);
} catch (jsonparseException e) {
E.PrintStackTrace ();
} catch (jsonmappingexception e) {
E.PrintStackTrace ();
} catch (ioexception e) {
E.PrintStackTrace ();
-
คืนค่า null;
-
-
คลาส Zooserializetest {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
Zoo Zoo1 = New Zoo ();
Zoo.setMax (100);
ZOO1.Addanimal ("Hamster");
ZOO1.Addanimal ("แกะ");
ZOO1.Serializetolog ("zoo1.log");
Zoo Zoo2 = New Zoo ();
Zoo.SetMax (200);
zoo2.addanimal ("Tiger");
zoo2.serializetolog ("zoo2.log");
Zoo.setMax (300);
// deserialization
ZOO1 = zoo.deserializeFromlog ("zoo1.log");
Zoo2 = zoo.deserializeFromlog ("zoo2.log");
System.out.println ("zoo1: /n" + zoo1);
System.out.println ("zoo2: /n" + zoo2);
// serialize ถึง JSON
ZOO1.SerializeJSontolog ("zoo1.json");
ZOO1 = zoo.deserializeJsonFromlog ("zoo1.json");
System.out.println ("Zoo1 จาก JSON: /N" + ZOO1);
-
-