java Object流小白总结

使用场景​:

把Java对象保存到文件(比如游戏存档)

网络传输对象(比如发送一个User对象)

java 序列化和反序列化步骤
序列化 (对象-------->文件)
1.要序列化的类实现 Serializable 标记接口
public class T implements Serializable{.......}

2.​创建对象并赋值,初始化待序列化的对象,填充数据。
T t = new T(); t.属性=...;

3. ​**创建 ObjectOutputStream**​
绑定到目标文件(如 ObjectIO.dat)。
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("ObjectIO.dat"));

4.写入对象到文件​
通过 writeObject() 方法序列化对象。
oos.writeObject(user); // 确保写入的是目标对象(如 user)

​关闭资源​
调用 flush() 强制写入数据,并关闭流释放资源
oos.flush();
oos.close();

​二、反序列化(文件 → 对象)
1.​**创建 ObjectInputStream**​
绑定到序列化文件。
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("ObjectIO.dat"));

​2.读取对象并强制类型转换​
通过 readObject() 读取字节流,并转换为原始类型(如 T)。
T t = (t)ois.readObject();

3.​使用恢复后的对象​
直接访问反序列化对象的属性或方法。
System.out.println(t.name);

4.关闭资源​
确保关闭输入流。
ois.close();

demo:

import java.io.*;
public class TestObjectStreamDemoA {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		User user = new User();
		user.name="张三";
		user.age=25;
		try {
			ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("ObjectIO.dat"));
			oos.writeObject(user);
			oos.flush();
			oos.close();
			
			ObjectInputStream ois = new ObjectInputStream(new FileInputStream("ObjectIO.dat"));
			User u = (User)ois.readObject();
			String s= u.name;
			System.out.println(s);
			ois.close();
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

	}

}
class User implements Serializable{
	String name;
	int age;
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值