serobjectdemo.java
来自「java入门经典教程 java入门经典教程 java入门经典教程」· Java 代码 · 共 49 行
JAVA
49 行
// 例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 + =
减小字号Ctrl + -
显示快捷键?