JAvaのシーケンス化と逆シーケンス化

1459 ワード

JAvaのシーケンス化と逆シーケンス化
package com.wansha;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;


public class MySerializable{
	public static void main(String[] args) throws Exception{
		Person person = new Person(20,"zhangshan","hubei,jingmen");
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("123.txt"));
		oos.writeObject(person);
		oos.close();
		
		
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("123.txt"));
		Person person2 = (Person)ois.readObject();
		System.out.println(person2.age);
		oos.close();
		
	}
}

/**
 * 
 * 
 * @author sharp
 *
 *      ,                      ,
 *          Serializable  ,
 *    NotSerializableException  
 *
 */
class Person implements Serializable{
	
	public int age;
	private transient String name;        
	private static String address;        //transient static          
	
	public Person(int age, String name, String address) {
		super();
		this.age = age;
		this.name = name;
		this.address = address;
	}
}

シーケンス化されたオブジェクトがこの2つの方法を実装すると、オブジェクトはより繊細なシーケンス化をサポートします.
 private void writeObject(java.io.ObjectOutputStream out)
     throws IOException
 private void readObject(java.io.ObjectInputStream in)
     throws IOException, ClassNotFoundException;