java学习对象序列化及解序列化

对象的序列化就是,把对象状态(属性和方法)用一串字符序列存储在文件中,多用于把这些序列放在数据库里,为了记录对象的状态,以便下一次直接拿来用。举个例子就是像我们玩游戏,像我的世界,可以把我们做过的事情保存起来,下一次登录时,便可直接在之前的基础上继续玩耍…
学习体会对象序列化的基本过程,用一个简单的对象来进行操作。
这里用到的接口是Serializable,这个接口只是为了告诉虚拟机这个类可以被序列化。
注意:若这个类里用到其他类对象,也要保证其他类对象引用了这个接口,即保证其他类也可以被序列化。
另外,如果在类中某个变量或方法不要被序列化,则用transient声明类型,则序列化时会跳过。
首先,是对象的序列化:
把对象状态(属性和方法)保存下来

import java.io.*;
public class Box implements Serializable{
	private int width;
	private int height;
	
	public void setwidth(int w){
		width=w;
	}
	public void setheightz(int h){
		height=h;
	}
	
	public static void main(String[] args){
		
		Box mybox=new Box();
		mybox.setwidth(20);
		mybox.setheightz(30);
		
		try{
		FileOutputStream fs =new FileOutputStream("xvliehua.ser");
		ObjectOutputStream os=new ObjectOutputStream(fs);
		os.writeObject(mybox);
		os.close();
			
		}
		catch(Exception ex){
			ex.printStackTrace();	
		}
	  } 
}

用Notepad++查看序列化结果(写入.ser文件):
在这里插入图片描述
也可以写成txt,查看:
在这里插入图片描述
然后,对象解序列化:
提取已经保存的对象

public static void main(String[] args){
		try{
		FileInputStream fs =new FileInputStream("xvliehua.txt");//序列化的文件
		ObjectInputStream os=new ObjectInputStream(fs);
		Object one =os.readObject();//读取对象
		Box mybox=(Box) one;//类型转换
		os.close();
			
		}
		catch(Exception ex){
			ex.printStackTrace();	
		}
	  } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值