ObjectOutputStream的使用

一、ObjectOutputStream jdk文档解析

ObjectOutputStream将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。

只能将支持 java.io.Serializable 接口的对象写入流中。每个 serializable 对象的类都被编码,编码内容包括类名和类签名、对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包。

writeObject 方法用于将对象写入流中。所有对象(包括 String 和数组)都可以通过 writeObject 写入。可将多个对象或基元写入流中。必须使用与写入对象时相同的类型和顺序从相应 ObjectInputstream 中读回对象。

还可以使用 DataOutput 中的适当方法将基本数据类型写入流中。还可以使用 writeUTF 方法写入字符串。

对象的默认序列化机制写入的内容是:对象的类,类签名,以及非瞬态和非静态字段的值。其他对象的引用(瞬态和静态字段除外)也会导致写入那些对象。可使用引用共享机制对单个对象的多个引用进行编码,这样即可将对象的图形恢复为最初写入它们时的形状。  


二、例子

1、写一个用于保存到本地的类,并实现serializable接口。

2、创建一个File对象,指向本地的一个文件。

3、把刚创建的File对象封装成一个字节流对象FileOutputStream。

4、把FileOutputStream作为ObjectOutputStream对象的参数并创建ObjectOutputStream对象。

5、使用writeObject方法把实现了serializable接口的类对象保存到本地。


实现serializable接口的class

	public class Student implements Serializable
	{
		public int age;
		public String name;
	}
	


Main方法写法

                Student student = new MainApp().new Student();
		student.age = 10;
		student.name = "xiejunjie";
		

		File file = new File("obj.txt");
		if(!file.exists())
		{
			file.createNewFile();
		}
		FileOutputStream out = new FileOutputStream(file);
		ObjectOutputStream oos = new ObjectOutputStream(out);
		oos.writeObject(student);
		oos.close();
		out.close();


序列化后,本地就产生了一个obj.txt文件,打开文件的内容可以看到下面的一些东西,隐隐约约可以看到是刚才的Student对象的内容




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值