1. جافا التسلسل والخروج
يشير تسلسل Java إلى عملية تحويل كائنات Java إلى تسلسل بايت ؛ يشير Java Deserialization إلى عملية استعادة تسلسل البايت إلى كائنات Java.
2. لماذا هناك حاجة إلى التسلسل وتهلسل
نحن نعلم أنه عندما تتواصل عمليتان عن بُعد ، يمكنهم إرسال أنواع مختلفة من البيانات إلى بعضها البعض ، بما في ذلك النصوص والصور والصوت والفيديو وما إلى ذلك ، وسيتم نقل هذه البيانات على الشبكة في شكل تسلسلات ثنائية. لذلك عندما تتواصل عمليتان Java ، هل يمكن تحقيق نقل الكائن بين العمليات؟ الجواب نعم. كيف تفعل ذلك؟ هذا يتطلب التسلسل جافا وتهلسل. بمعنى آخر ، من ناحية ، يحتاج المرسل إلى تحويل كائن Java إلى سلسلة من البايتات ثم نقله على الشبكة ؛ من ناحية أخرى ، يحتاج المتلقي إلى استعادة كائن Java من تسلسل البايت.
عندما نفهم لماذا هناك حاجة إلى تسلسل Java وفرسه ، نفكر بشكل طبيعي في فوائد التسلسل Java. الفوائد هي أولا أن استمرار البيانات تتحقق. من خلال التسلسل ، يمكن حفظ البيانات بشكل دائم على القرص الثابت (عادة ما يتم تخزينه في ملف). ثانياً ، يتم استخدام التسلسل لتحقيق التواصل عن بُعد ، أي نقل تسلسل البايت للكائنات على الشبكة.
3. مثال:
(1) تسلسل الملفات وإلغاء تمييزها:
استيراد java.io.*؛ suppressWarnings ("Serial") الشخص class ينفذ serializable {public pully (اسم السلسلة ، سلسلة الجنس ، int ، ارتفاع int) {this.name = name ؛ this.Sex = الجنس ؛ this.age = العمر ؛ this.height = الارتفاع ؛ } السلسلة العامة tostring () {return "|" + this.name + "|" + this.Sex + "|" + this.age + "|" + this.hight + "|" ؛ } اسم السلسلة العامة ؛ جنسية السلسلة العامة ؛ العصر العام العام ؛ ارتفاع الباحث العام ؛ } الطبقة العامة SerialTest {public static void main (string [] args) يلقي FileNotfoundException ، ioException ، classnotfoundException {person p = new person ("jim" ، "male" ، 28 ، 194) ؛ // ابدأ تسلسل ObjectOutPutStream OOS = جديد ObjectOutputStream (FileOutputStream جديد (ملف جديد ("mytest.txt"))) ؛ OOS.WriteObject (p) ؛ // deserialize ObjectInputStream ois = new ObjectInputStream (FileInputStream جديد (ملف جديد ("myTest.txt"))) ؛ prof p1 = (person) ois.ReadObject () ؛ system.out.println (p1.toString ()) ؛ }}
(2) تخلص XML في الفصل:
استيراد java.io.*؛ استيراد com.reatevorks.xstream.xstream ؛ استيراد COM.THOUGHTWORKS.xstream.io.xml.domdriver ؛ suppressWarnings ("Serial") Class RoadInfo تنفذ مسلسل {public int id ؛ العام الطويل MDN ؛ اسم السلسلة العامة ؛ الغاز الطبيعي المسال المزدوج العام ؛ عام مزدوج اللات. أيقونة السلسلة العامة ؛ } suppressWarnings ("Serial") class table_list تنفذ serializable {public string toString () {StringBuffer sb = new StringBuffer () ؛ لـ (RoadInfo r: sequence) {sb.append ("|") ؛ SB.Append (R.ID) ؛ sb.append ("|") ؛ SB.Append (R.MDN) ؛ sb.append ("|") ؛ SB.Append (R.Name) ؛ sb.append ("|") ؛ SB.Append (R.LNG) ؛ sb.append ("|") ؛ SB.Append (R.Lat) ؛ sb.append ("|") ؛ SB.Append (R.ICON) ؛ sb.append ("|/n") ؛ } return sb.toString () ؛ } public table_list (int count) {sequence = new RoadInfo [count] ؛ لـ (int i = 0 ؛ i <count ؛ i ++) {sequence [i] = new RoadInfo () ؛ }} sequence RoadInfo [] ؛ } الفئة العامة xmltest { / ** * param args * / public static void main (string [] args) يرمي الاستثناء {// todo method method stringbuffer sb = new StringBuffer () ؛ BufferedReader Reader = جديد BufferEdReader (New FileReader (ملف جديد ("friend_msg.xml"))) ؛ بينما (صحيح) {string s = reader.ReadLine () ؛ // اقرأ سطر if (s == null) {break ؛ } sb.append (s) ؛ } xstream xs = new xstream (new DomDriver ()) ؛ table_list db = (table_list) xs.fromxml (sb.toString ()) ؛ System.out.println (db.toString ()) ؛ }}