序列化
将一个内存中保存的对象变成一个二进制的数据流进行传输,但并不是所有类的对象都可以进行序列化操作,如果一个对象需要被序列化,则对象所在的类必须实现Serializeble接口。此接口中没有任何的方法定义,是作为标识接口出现的
实体类标注为可以序列化
package IO;
import java.io.Serializable;
public class Person implements Serializable {
private String name;
public 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;
}
public String toString(){
return "姓名:" +name+",年龄:"+age;
}
}
上述对象可以实现序列化,可以使用ObjectOutputStream将对象写到文件中去
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class ObjectIutputStreamDemo {
public static void main(String[] args) throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:/hello.txt"));
Person p = new Person();
p.setAge(20);
p.setName("几把飞");
oos.writeObject(p);
oos.close();
}
}
反序列化
将文件中读取的对象的过程
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class ObjectInputStreamDemo {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:/hello.txt"));
Person p =(Person)ois.readObject();
ois.close();
System.out.println(p);
}
}