• 对象的序列化


    import java.io.Serializable;
    import java.io.*;
    
    class Data implements Serializable {
    	private int i;
    
    	Data(int x) {
    		i = x;
    	}
    
    	public String toString() {
    		return Integer.toString(i);
    	}
    }
    
    public class Worm implements Serializable {
    	private static int r() {
    		return (int) (Math.random() * 10);
    	}
    
    	private Data[] datas = { new Data(r()), new Data(r()), new Data(r()) };
    
    	private Worm next;
    	private char c;
    
    	Worm(int i, char x) {
    		System.out.println("worm constructor:" + i);
    		c = x;
    		if (--i > 0) {
    			next = new Worm(i, (char) (x + 1));
    		}
    	}
    
    	Worm() {
    		System.out.println("deault constructor");
    	}
    
    	public String toString() {
    		String s = " ";
    		for (int i = 0; i < datas.length; i++) {
    			s += datas[i].toString();
    		}
    		if (next != null) {
    			s += next.toString();
    		}
    		return s;
    	}
    
    	public static void main(String[] args) {
    		Worm w = new Worm(6, 'a');
    		System.out.println("w = " + w);
    		try {
    			ObjectOutputStream out = new ObjectOutputStream(
    					new FileOutputStream("worm.out"));
    			out.writeObject("Worm storage");
    			out.writeObject(w);
    			out.close(); // Also flushes output
    			ObjectInputStream in = new ObjectInputStream(new FileInputStream(
    					"worm.out"));
    			String s = (String) in.readObject();
    			Worm w2 = (Worm) in.readObject();
    			System.out.println(s + ", w2 = " + w2);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		try {
    			ByteArrayOutputStream bout = new ByteArrayOutputStream();
    			ObjectOutputStream out = new ObjectOutputStream(bout);
    			out.writeObject("Worm storage");
    			out.writeObject(w);
    			out.flush();
    			ObjectInputStream in = new ObjectInputStream(
    					new ByteArrayInputStream(bout.toByteArray()));
    			String s = (String) in.readObject();
    			Worm w3 = (Worm) in.readObject();
    			System.out.println(s + ", w3 = " + w3);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    }
    

      

  • 相关阅读:
    代码希望HTML5初探CSS3新特性小示例
    myeclipse及eclipse的优化
    window7如何提高到最高权限
    大麦茶
    poj3292
    poj3278
    poj3100
    poj3117
    poj3299
    Presto性能调优的五大技巧
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/4349735.html
Copyright © 2020-2023  润新知