用字节流将一个Object对象持久化

 用字节流将一个Object对象持久化
 注:
 1.读取的时候不能被new
 2.Object必需序列化
 3.static的不能被序列化

 4.transient也不能被序列化,但它还是存在栈中


 ObjectInputStream:
 可以为应用程序提供对对象图形的持久存储,用于恢复那些以前序列化的对象。
 bjectOutputStream:
 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化

 只能将支持 java.io.Serializable 接口的对象写入流中


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class FileDemo6 {

	public static void main(String[] args) throws Exception {
		// 将对象持久化
		// writerObj();
		// 读取持久化类
		readObj();

	}

	public static void readObj() throws Exception {
		// 指定要读取的对象
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
				"F:\\Objcet.object"));
		// 将读取的对象转换成员工对象
		FileDemo6_Emp emp = (FileDemo6_Emp) ois.readObject();

		System.out.println(emp);
	}

	public static void writerObj() throws Exception {
		// 创建一个写入流对象(后缀名自定义,反正直接打开了也是乱码)
		ObjectOutputStream ois = new ObjectOutputStream(new FileOutputStream(
				"F:\\Objcet.object"));
		// 创建一个员工实体对象并写入指定文件中
		ois.writeObject(new FileDemo6_Emp("zhangsan", 33));
		// 关闭流
		ois.close();

	}

}
要操作的对象

import java.io.Serializable;

public class FileDemo6_Emp implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private String name;
	private int age;

	public FileDemo6_Emp(String name, int age) {
		this.name = name;
		this.age = age;
	}

	@Override
	public String toString() {
		return "FileDemo6_Emp [name=" + name + ", age=" + age + "]";
	}

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值