欢迎来到天天文库
浏览记录
ID:32588644
大小:64.22 KB
页数:9页
时间:2019-02-13
《浅谈java序列化与反序列化》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、首先解释两个概念'何为序列化?何为反序列化?序列化:将对象转化成流的过程称为序列化反序列化:将流转化成对象的过程称之为反序列化序列化与反序列化必须遵守的原则a)Java对象在java中要想使一个java乂寸象可以实现序列化与反序列化,必须让该类实现java・io・Serializmb丄0接口java.io.Serializable接口定义如下:publicinterfaceSerializable{}从上述定义屮可以看到该接口屮未定义任何方法,这大大的简化了开发者b)序列化主要依赖java.io.ObjectOutput
2、Stream类,该类对java.io.FileOutputStream进一步做了封装,这里主要使用ObjectOutputStrearn类的writeObject()方法实现序列化功能Demo:★将对象序列化到磁盘文件中*@paramo*@throwsException*/publicstaticvoidwriteObject(Objecto)throwsExceptioFilef=newFile(nd:n"userif(f・exists()){f.delete();}FileOutputStreamos=newFile
3、OutputStream(f);//ObjectOutputStream核心类ObjectOutputstreamoos=newObjectOutputStream(os);oos.writeObject(o);oos•close();os•close();a)反序列化主要依赖java・io.ObjectInputstream类/该类对java.io.Inputstream进一步做了封装,这里主要使用ObjectInputStream类的readObject()方法实现序列化功能★反序列化,将磁盘文件转化为对象*@par
4、amf*@return*@throwsException*/publicstaticUserreadobject(Filef)throwsException!Inputstreamis=newFileinputstream(f);//ObjectOutputStream核心类ObjectInputStreamois=newObjectlnputStream(is);return(User)ois-readobject();贴岀完整的demoJava对象:packagecom>ioebean;importjava.io.S
5、erializable;publicclassUserimplementsSerializable{privateintuserld;privateStringuserName;privateStringuserSex;privateintuserAge;publicintgetUserAge(){returnuserAge;}publicvoidsetUserAge(intuserAge){this•userAge=userAge;}publicintgetUserld(){returnuserid;}publievo
6、idsetUserld(intuserid){this.userid=userid;}publicStringgetUserName(){returnuserName;}publievoidsetUserName(StringuserName){this•userName=userName;}publicStringgetUserSex(){returnuserSex;}publievoidsetUserSex(StringuserSex){this•userSex=userSex;}QOverridepublicStr
7、ingtoString(){returnthis•getUserId()+"n+this•getUserName()+ftn+this・getUserSex()+”H+this.getUserAge();序列化少反序列化packagecom.io・test;importjava•io.File;importjava•io•FileInputStream;importjava•io•FileOutputStream;importjava.io.InputStream;importjava.io.ObjectlnputStr
8、eam;importjava.io•ObjectOutputStream;importcom>io•bean•User;publicclassTestSerializable{/**★将对彖序列化到磁盘文件屮*@paramo*@throwsException*/publicstaticvoidwriteObject(
此文档下载收益归作者所有