Java的序列化和反序列化
Java的序列化和反序列化是什么?
Java的序列化是指将对象转成二进制流存入到内存或文件中,
Java的反序列化是指从内存中或文件中读取二进制流转换成对象
为什么需要java的序列化和反序列化?
就是应用场景?有:比如图片、文件进行传输,需要将其转换成二进制流的方式(序列化),
而接受方需要读取对应的(反序列化),除了这个主要还用于网络传输(进程之间的通信)
如何实现序列化OutputStream 反序列化(InputStream)?
实现接口Serializable接口和Externalizable接口
public class ObjectOutputStream extends OutputStream implements ObjectOutput{
}
public class ObjectInputStream extends InputStream implements ObjectInput{
}
public Studet implements Serializable{
private String name;
private String sex;
private int age;
set get
toString
}
public void SerializableTest{
Student s=new Student("小红","女",22);
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(new File("E:\Student.txt")));
oos.wirteObject(s);
oos.close;
}
public void SerializableTest02{
Student s=new student("小小","男",22);
ObjectInputStream ois=new ObjectInputStream(new InpuStream(new File("E:\Studeng.txt"));
Student ss=(Student)ois.readObject();
System.out.println(ss);
ois.close();//反序列化
}