序列化和返序列化的概述和对象的序列化流ObjectOutputStream
序列化和返序列化的概述
对象的序列化流ObjectOutputStream
Person类:
package com.yang.Test.ObjectStreamStudy;
import java.io.Serializable;
/**
* 序列化和反序列化的时候会抛出NotSerializableException没有序列化异常
* 类通过实现Serializable接口以启动序列化功能。尉氏县此接口的类将无法使其任何状态序列化或反序列化
* Serializable接口也叫作标记性接口
* 要进行序列化和反序列化的类必须实现Serializable接口
* 当我们进行序列化和反序列化的时候就会检测类上是否有这个标记
* 有:就可以序列化和反序列化
* 没有:就会抛出NotSerializableException异常
*/
public class Person implements Serializable {
private String name;
private int age;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + 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 Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
序列化
package com.yang.Test.ObjectStreamStudy;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
/**
* java.io.ObjectOutputStream extends OutputStream
* ObjectOutputStream:对象的序列化流
* 作用:把对象以流的方式写入到文件中保存
* 构造方法:
* ObjectOutputStream(OutputStream out)创建写入指定的OutputStream的ObjectOutputStream
* 参数:
* OutputStream out:字节输出流
* 特有的成员方法
* void writeObject(Object obj)将指定的对象写入ObjectStream
* 使用步骤:
* 1.创建ObjectOutputStream对象构造方法中传递字节输出流
* 2.使用ObjectOutputStream对象中的方法writeObject吧对象写入到文件中
* 3.释放资源
*/
public class ObjectOutputStreamStudy {
public static void main(String[] args) throws IOException {
//1.创建ObjectOutputStream对象构造方法中传递字节输出流
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("Document\\Person.txt"));
//2.使用ObjectOutputStream对象中的方法writeObject吧对象写入到文件中
oos.writeObject(new Person("小美女",18));
//3.释放资源
oos.close();
}
}