对象序列化

有时候需要将对象保存到磁盘文件或者网络信息中,保存对象的过程实质上就是对象的持久化过程,对象持久化也就是记录对象的状态以便将来具有再生的能力。JAVA提供了对象流以实现对象的输入与输出,也就是对象持久化。

需要注意的是,在使用对象流之前必须将该对象序列化。所谓对象序列化就是将对象的状态转换成字节流,并且以后可以通过这些值再生相同状态的对象。简单来说,序列化就是一种用来处理对象流的机制,而对象流也就是将对象的内容进行流化,我们可以对流化后的对象进行读写操作,也将流化的对象传输与网络间。

完整例子

/**************************Person.java***********************/
public class Person implements Serializable {
String name;
transient int age;          //被transient修饰的变量将不会被保存
String major;
    public Person(String name,int age,String major) {

this.name=name;
this.age =age;
this.major=major;
}
public String toString(){
return "Name: "+this.name+", Age: "+this.age+", Major: "+this.major;
}

}


/**************************SerializableDemo.java*************/
public class SerializableDemo {
       
public static void main(String[] args) {
// TODO Auto-generated method stub
Person person=new Person("melon",16,"computer Science");
Person tmp=null;
try {
FileOutputStream fos=new FileOutputStream("data.dat");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(person);
oos.close();
} catch (Exception e) {

e.printStackTrace();
   }
try {
FileInputStream fis =new FileInputStream("data.dat");
ObjectInput ois=new ObjectInputStream(fis);
tmp=(Person)ois.readObject();
System.out.println(tmp.toString());
ois.close();
} catch (Exception e) {

e.printStackTrace();

}
}
}


程序运行结果:Name: melon, Age: 0, Major: computer Science

人的年龄属于个人隐私,本程序中Person类的成员变量age被transient关键字修饰,这样持久化Person对象时,他的age属性就不会保存。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值