⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serobjectdemo.java

📁 java入门经典教程 java入门经典教程 java入门经典教程
💻 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 + -