📄 serobjectdemo.java
字号:
// 例5.5.7 SerObjectDemo.java
import java.io.*;
public class SerObjectDemo
{
public static void main(String[] args)
{
Employee employee = new Employee("David", 1);
Manager manager = new Manager("Lisa", 3);
manager.setSecretary(employee);
Employee[] staff = new Employee[2];
staff[0] = employee;
staff[1] = manager;
System.out.println("对象被序列化之前的状态...");
for (int i = 0; i < staff.length; i++)
System.out.println(staff[i]);
try
{
// 将Employee类和Manager类的对象写到文件中
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream("employee.dat"));
out.writeObject(staff);
out.close();
// 将Employee类和Manager类的对象从文件中读出
ObjectInputStream in = new ObjectInputStream(
new FileInputStream("employee.dat"));
Employee[] newStaff = (Employee[])in.readObject(); //将数组对象读出
in.close();
System.out.println("\n反序列化之后的对象状态...");
for (int i = 0; i < newStaff.length; i++)
System.out.println(newStaff[i]);
// 通过harry对象来加薪将在secretary上反映出来
newStaff[0].raiseSalary(10); // 对harry对象加薪
System.out.println("\n对读出的Employee类对象David进行加薪后所有对象所发生的变化...");
for (int i = 0; i < newStaff.length; i++)
System.out.println(newStaff[i]);
}
catch (Exception e){
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -