首页 > 代码库 > java 对象序列化

java 对象序列化

上代码

/**
 * Person.java
 */
import java.io.*;

public class Person implements Serializable
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String name;
	private int age;
	
	public Person(String str,int num)
	{
		name=str;
		age=num;
	}
	public String toString()
	{
		return "Name:"+name+"\tAge:"+age;
	}
}
/**
 * SerializableDemo.java
 */
import java.io.*;

public class SerializableDemo
{
	public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException
	{
		Person pers=new Person("cjc",24);
		File f=new File("F:\\workspace\\JavaPrj\\test.txt");
		serial(pers,f);
		deserial(f);
	}
	public static void serial(Object p,File f) throws FileNotFoundException, IOException
	{
		ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(f));
		out.writeObject(p);
		out.close();
	}
	public static void deserial(File f) throws FileNotFoundException, IOException, ClassNotFoundException
	{
		ObjectInputStream in=new ObjectInputStream(new FileInputStream(f));
		Person p=(Person)in.readObject();
		in.close();
		System.out.println(p);
	}
}

另外,如果不希望类中的属性被序列化,可以在声明属性之前加上transient关键字

将name属性修改为transient,即private transient String name;