天天看點

java序列化淺談

  首先大家進來第一個疑問肯定是“什麼是序列化?為什麼要使用序列化?怎麼實作一個簡單的序列化案例?”

1.序列化就是把對象以一種規範的二進制形式存在記憶體中,另一邊以反序列化方式擷取;

2那麼為什麼要使用序列化呢?不使用序列化的話,就沒有一個規範,你就算存儲了資料,别人也不知道以哪種規範去擷取;是以序列化就是一種大家都認同的規範了;

3.接下來我們實作一個簡單的序列化案例,隻要會寫“Hello World!!!”的人都可以實作這個案例!!!

  1.首先建一個普通的java項目:

java序列化淺談
    2.随便寫一個名字,然後Finish
java序列化淺談

    3.随便建一個java類;

  複制下面的即可,看好了。這個類是實作了序列化的接口的

public class Demo01 implements Serializable{
    public byte version = 100;         
    public byte count = 0;  
    private String name ;
	@Override
	public String toString() {
		return "Dome01 [version=" + version + ", count=" + count + ", name=" + name + "]";
	}
	public byte getVersion() {
		return version;
	}
	public void setVersion(byte version) {
		this.version = version;
	}
	public byte getCount() {
		return count;
	}
	public void setCount(byte count) {
		this.count = count;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
    
    
}
      

  4.繼續建立一個類,寫個main方法

複制即可,

public class Demo02 {
    public static void main(String args[]) throws IOException {  
        //建立一個檔案輸出流,指定一個路徑
        FileOutputStream fos = new FileOutputStream("F:/temp.out");         
        ObjectOutputStream oos = new ObjectOutputStream(fos);          
        Demo01 ts = new Demo01();
        //随意設定幾個值,友善測試
        ts.setName("test2");
        //輸出,重新整理,關流
        oos.writeObject(ts);          
        oos.flush();          
        oos.close(); 
    }
}      

  5.編寫測試類,測試即可;測試步驟自行發揮!!!!!

public class Demo03 {
    public static void main(String args[]) throws Exception {   
        //擷取檔案輸入流,就是你剛剛指定的檔案
        FileInputStream fis = new FileInputStream("F:/temp.out");          
        ObjectInputStream oin = new ObjectInputStream(fis);           
        Dome01 ts = (Dome01)oin.readObject();  
        //擷取列印即可
        System.out.println("version="+ts.version+ts.getName());    
        
        if(oin!=null){
            oin.close();
        }
    } 
}      

 6.是不是很簡單,是不是不用想,案例就出來了!!!!還是需要自己都思考思考!!!