package demo7;
import java.io.Serializable;
/*
* 序列化和反序列化的时候,会抛出NotSerializableException没有序列化异常
* 类通过实现:java.io.Serializable 接口以启动其序列化功能,未实现接口的类将无法使其任何状态序列化或反序列化
* Serialiable接口也叫标记型接口
* 要进行序列化和反序列化的类必须实现Serializable接口,就会给类添加一个标记
* 当我们进行序列化和反序列化的时候,就会检测类上是否有这个标记
* 有:就可以序列化
* 无:就会抛出NotSerizableException异常
* statice 关键字:静态关键字
* 静态优先于非静态加载到内存中(静态优先于对象进入到内存中)
* 被static修饰的成员变量不能被序列化的,序列化的都是对象
*transient 关键字:瞬态关键字
* 被transient修饰成员变量,不能被序列化
* */
public class person implements Serializable {
private String name;
private int age;
public person(String name, int age) {
this.name = name;
this.age = age;
}
public person(){
}
@Override
public String toString() {
return "person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
—————————————————————————————————————————————————————————
ckage demo7;
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)将指定的对象写入ObjectOutputStream
* 使用步骤:
* 1.创建ObjectOutputStream对象,构造方法中传递字节输出流
* 2.使用ObjectOutputStream对象中的方法writeObject,把对象写入到文件中
* 3.资源释放
* */
public class demo1 {
public static void main(String[] args) throws IOException {
//1.创建ObjectOutputStream对象,构造方法中传递字节输出流
ObjectOutputStream ops = new ObjectOutputStream(new FileOutputStream("/Users/wanggang/Desktop/java/src/demo7/1.txt"));
ops.writeObject(new person("小美女",89));
ops.close();
}