java序列化

本文详细介绍了如何在Java中实现对象的序列化和反序列化,包括单个对象和列表的处理过程。通过具体代码示例,展示了序列化接口的实现方法,以及使用ObjectOutputStream和ObjectInputStream进行序列化和反序列化的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序列化object
创建一个对象,这个对象需要implements Serializable

public class Products implements Serializable
{
	public String pId;
	public String pName;
	public float pPrice;
	
	public Products(String pId, String pName, float pPrice)
	{
		this.pId = pId;
		this.pName = pName;
		this.pPrice = pPrice;
	}
	
	public String toString()
	{
		return this.pId+";"+this.pName+";"+this.pPrice;
	}
}

实现序列化和反序列化

public class Demo
{
	public static void main(String[] args) throws Exception
	{
		Products p1 = new Products("p01", "香蕉", 10.8f);
		Products p2 = new Products("p02", "苹果", 10.8f);

		
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:/test/pdt.obj"));
		oos.writeObject(p1);
		oos.writeObject(p2);

		oos.close();
		
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:/test/pdt.obj"));
		Products p5 = (Products) ois.readObject();      //一次读取一个object,按从前到后的顺序读取
		Products p6 = (Products) ois.readObject();
		ois.close()

		System.out.println(p5);
		System.out.println(p6);
	}
}

列表的序列化和反序列化

//列表中的object需要实现Serializable接口
public class Demo
{
	public static void main(String[] args) throws Exception
	{
		Products p1 = new Products("p01", "香蕉", 10.8f);
		Products p2 = new Products("p02", "苹果", 10.8f);

		ArrayList<Products> list = new ArrayList<Products>();
		list.add(p1);
		list.add(p2);
		
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:/test/list.obj"));
		oos.writeObject(list);
		oos.close();
		
		System.out.println(list);
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:/test/list.obj"));
		ArrayList<Products> list1 = (ArrayList<Products>) ois.readObject();
		System.out.println(list1);
		ois.close();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值