对象的序列化问题
·对象的序列化就是指把一个对象写入到流当中
·对象的反序列化指的就是从一个流当中读取一个对象
对象的序列化的好处就是在于即便程序结束了,对象依然可以保留下来,如果要对一个类进行序列化的话,那么这个类必须实现Serializable接口。
对象序列化的步骤:
·创建一个对象输出流(ObjectOutputStream),可以连接到其他的流,比如说文件输出流
·创建对象,将对象转换成流的形式
·关闭流
序列化(如果有一个属性你不想序列化,则可以使用一个关键字transient来声明)
package obc17;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class OopDemo14 {
public static void main(String[] args) throws FileNotFoundException, IOException {
File file = new File("E:\\Maori\\IODemo.txt");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
Person p = new Person(20,"张三");
oos.writeObject(p);
oos.close();
}
}
反序列化:
package obc17;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
public class OopDemo15 {
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
File file = new File("E:\\Maori\\IODemo.txt");
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
Person p = (Person) ois.readObject();
System.out.println(p.getName()+"的年龄为"+p.getAge());
ois.close();
}
}