上代码
/** * 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;
时间: 2024-12-20 12:58:03