package unit5;
import java.io.*;
public class Java43 {
// 序列化:对象 ——> 文件
static void m1() throws IOException {
Per p1 = new Per("张三", 30);
File file = new File("d:/per.txt");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(p1);
oos.close();
}
// 反序列化:文件 ——> 对象
static void m2() throws IOException, ClassNotFoundException {
File file = new File("d:/per.txt");
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
Object o = ois.readObject();
Per per = (Per)o;
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
// IO序列化、反序列化
// 注意:static不会被序列化。
// 注意:transient:被transient这个关键字修饰不会被序列化
// 序列化:对象 ——> 文件
// 把java对象以字节形式保存在磁盘文件中的过程。
//m1();
// 反序列化:文件 ——> 对象
// 把保存在磁盘中的java对象重新转换为内存中的java对象。
m2();
}
}
// 要实现序列化功能、类必须实现序列化接口(Serializable 标识接口)
class Per implements Serializable {
String name;
transient int age;
public Per(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Per{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
领取专属 10元无门槛券
私享最新 技术干货