操作对象
ObjectInputStream和ObjectOutputStream - 被操作的对象需要Serializable(标记接口)
ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的持久存储。
静态不能被序列化,序列化的是堆内的对象,静态的在方法区 - import java.io.*;
- public class ObjectStreamDemo {
- public static void main(String[] args) throws Exception {
- writeObj();
- readObj();
- }
- //写入对象
- public static void writeObj() throws IOException{
- ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("obj.txt"));
- oos.writeObject(new Person("lisi",39));
- oos.close();
- }
- //读取对象
- public static void readObj() throws IOException, ClassNotFoundException{
- ObjectInputStream ois= new ObjectInputStream(new FileInputStream("person.obj"));
- Person p=(Person)ois.readObject();
- System.out.println(p);
- ois.close();
- }
- }
- //该接口没有方法,称为标记接口
- class Person implements Serializable{
- String name;
- //transient修饰表示虽然在堆内存中,不可被序列化
- transient int age;
- Person(String name,int age){
- this.name=name;
- this.age=age;
- }
- public String toString(){
- return this.name+":"+this.age;
- }
- }
复制代码
|