上代码
/**
* 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;