序列化流:写操作
将对象变成流数据进行传输,例如保存在一个文件里,在网络中传输。对象 – 流数据(ObjectOutputStream)反序列化流:读操作
将文件中的流对象数据或者网络中的流对象数据还原成对象。流数据 – 对象(ObjectInputStream)注意点:
序列化对象要实现序列化接口// 创建反序列化对象 ObjectInputStream ois=new ObjectInputStream(new FileInputStream("user.txt")); //流数据--对象 Object o=ois.readObject(); //释放 ois.close(); System.out.println(o); } private static void write() throws IOException { // 创建序列化流对象 ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("user.txt")); //对象序列化 oos.writeObject(new User("lisi", 20)); //释放 oos.close(); }输出:User [name=lisi]
/* * Serializable接口以启用其序列化功能,未实现此接口的类将无法使其任何状态序列化或反序列化。 *使用transient关键字声明不需要序列化的成员变量 */public class User implements Serializable{ //序列化id private static final long serialVersionUID = -2071565876962058344L; private String name; //transient关键字声明不需要序列化的成员变量 private transient int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [name=" + name + "]"; } public User(String name, int age) { super(); this.name = name; this.age = age; } public User() { super(); }}