Java中的序列化

如何将对象信息保存到文件中?

在Java中

ObjectOutputStream类的writeObjet(Object obj)方法可以往文件中写入对象的状态信息;

ObjectInputStream类的readObject()方法可以从文件中读出对象的状态信息;

writeObjet(Object obj)方法中的参数必须进行序列化,否则会出现NotSerializableException异常

问题来了,什么是序列化?

百度一手:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。

这句话什么意思?用一个例子来说明

1.首先创建一个Worker类

public class Worker implements Serializable {
	private String name;
	private int age;
	private double salary;

	// 构造方法
	public Worker(String name, int age, double salary) {
		super();
		this.name = name;
		this.age = age;
		this.salary = salary;
	}

	public Worker() {
		super();
	}

	// get/set 方法
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public double getSalary() {
		return salary;
	}

	public void setSalary(double salary) {
		this.salary = salary;
	}
	// toString 方法

	@Override
	public String toString() {
		return name + "/" + age + "/" + salary;
	}

}

2.新建一个测试类:

public class Test24 {
	public static void main(String[] args) throws Exception {
		
		Worker w1 = new Worker("Tom", 30, 5000.0);
		File file = new File("test.txt");
		test1(w1,file);	
	}

	public static void test1(File file,Worker w1) throws Exception {
		// 2.利 用 ObjectOutputStream 存 入 两 个 Worker 对 象 , 然 后 使 用
		ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
		out.writeObject(w1);
		out.close();
		
		// ObjectInputStream 读出这两个对象,并打印这两个对象的信息。
		ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
		System.out.println(in.readObject().toString());
 		in.close();
	}

测试结果:
在这里插入图片描述

总结:
1.序列化对象要实现Serializable标识接口
2.序列化ObjectOutputStream和反序列化ObjectInputStream来进行读写操作
3.释放资源

如有问题,请联系我,联系方式我是不会告诉你滴!^ z ^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值