// serialization/Worm.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.// Demonstrates object serializationimport java.io.*;import java.util.*;class Data implements Serializable {private int n;Data(int n) { this.n = n; }@Overridepublic String toString() {return Integer.toString(n);}}public class Worm implements Serializable {private static Random rand = new Random(47);private Data[] d = {new Data(rand.nextInt(10)),new Data(rand.nextInt(10)),new Data(rand.nextInt(10))};private Worm next;private char c;// Value of i == number of segmentspublic Worm(int i, char x) {System.out.println("Worm constructor: " + i);c = x;if(--i > 0)next = new Worm(i, (char)(x + 1));}public Worm() {System.out.println("No-arg constructor");}@Overridepublic String toString() {StringBuilder result = new StringBuilder(":");result.append(c);result.append("(");for(Data dat : d)result.append(dat);result.append(")");if(next != null)result.append(next);return result.toString();}public static voidmain(String[] args) throws ClassNotFoundException,IOException {Worm w = new Worm(6, 'a');System.out.println("w = " + w);try(ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("worm.dat"))) {out.writeObject("Worm storage\n");out.writeObject(w);}try(ObjectInputStream in = new ObjectInputStream(new FileInputStream("worm.dat"))) {String s = (String)in.readObject();Worm w2 = (Worm)in.readObject();System.out.println(s + "w2 = " + w2);}try(ByteArrayOutputStream bout =new ByteArrayOutputStream();ObjectOutputStream out2 =new ObjectOutputStream(bout)) {out2.writeObject("Worm storage\n");out2.writeObject(w);out2.flush();try(ObjectInputStream in2 = new ObjectInputStream(new ByteArrayInputStream(bout.toByteArray()))) {String s = (String)in2.readObject();Worm w3 = (Worm)in2.readObject();System.out.println(s + "w3 = " + w3);}}}}/* Output:Worm constructor: 6Worm constructor: 5Worm constructor: 4Worm constructor: 3Worm constructor: 2Worm constructor: 1w = :a(853):b(119):c(802):d(788):e(199):f(881)Worm storagew2 = :a(853):b(119):c(802):d(788):e(199):f(881)Worm storagew3 = :a(853):b(119):c(802):d(788):e(199):f(881)*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。