Java序列化和反序列化小记
来源:互联网 发布:下列属于软件特性 编辑:程序博客网 时间:2024/04/28 20:49
序列化:将java对象转换为字节序列的过程叫做序列化
反序列化:将字节对象转换为java对象的过程叫做反序列化
通常情况下,序列化有两种用途:
1) 把对象的字节序列永久的保存在硬盘中
2)在网络上传输对象的字节序列
反序列化:将字节对象转换为java对象的过程叫做反序列化
通常情况下,序列化有两种用途:
1) 把对象的字节序列永久的保存在硬盘中
2)在网络上传输对象的字节序列
相应的API
1)java.io.ObjectOutputStream.writeObject(Object obj)
2)java.io.ObjectInputStream.readObject()只有实现了Serializable或者Externalizable接口的类的对象才能够被序列化。
1、序列化类
package ct.data;import java.io.Serializable;/* * 把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。 * 对象的序列化主要有两种用途: * 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中,用于保存到硬盘; * 2) 在网络上传送对象的字节序列,应用于两个进程在进行远程通信,类似C++结构体作用; */public class TupleInfo implements Serializable{private String UserNo;private String Lac;private String Ci;private String StartTime;private String LongStay;public void setUserNo(String strUserNo){this.UserNo=strUserNo;}public String getUserNo(){return UserNo;}public void setLac(String strLac){this.Lac=strLac;}public String getLac(){return Lac;}public void setCi(String strCi){this.Ci=strCi;}public String getCi(){return Ci;}public void setStartTime(String strStartTime){this.StartTime=strStartTime;}public String getStartTime(){return StartTime;}public void setLongStay(String strLongStay){this.LongStay=strLongStay;}public String getLongStay(){return LongStay;}}
2、测试
package ct.data;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.text.MessageFormat;public class TupleInfoTest {public static void main(String[] args) throws Exception { SerializeTupleInfo();//序列化TupleInfo对象 TupleInfo tuple = DeserializeTupleInfo();//反序列TupleInfo对象 System.out.println(MessageFormat.format("userno={0},lac={1},ci={2},starttime={3},longstay={4}",tuple.getUserNo(), tuple.getLac(), tuple.getCi(),tuple.getStartTime(),tuple.getLongStay())); } /** * MethodName: SerializePerson * Description: 序列化TupleInfo对象 */ private static void SerializeTupleInfo() throws FileNotFoundException,IOException { TupleInfo tuple = new TupleInfo(); tuple.setUserNo("123"); tuple.setLac("DE"); tuple.setCi("FG"); tuple.setStartTime("20160808080808"); tuple.setLongStay("300");//秒 // ObjectOutputStream 对象输出流,将TupleInfo对象存储到D盘tmp目录下的tuple.txt文件中,完成对TupleInfo对象的序列化操作 ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream(new File("D:/tmp/tuple.obj"))); oo.writeObject(tuple); System.out.println("TupleInfo对象序列化成功!"); oo.close(); } /** * MethodName: DeserializePerson * Description: 反序列TupleInfo对象 */ private static TupleInfo DeserializeTupleInfo() throws Exception, IOException { ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("D:/tmp/tuple.obj"))); TupleInfo tuple = (TupleInfo) ois.readObject(); System.out.println("TupleInfo对象反序列化成功!"); return tuple; }}
0 0
- Java序列化和反序列化小记
- Java序列化和反序列化
- java 序列化 和反序列化
- java 序列化和反序列化
- java 序列化和反序列化
- [java]序列化和反序列化
- java序列化和反序列化
- java 序列化和反序列化
- java序列化和反序列化
- JAVA序列化和反序列化
- Java 序列化和反序列化
- java 序列化和反序列化
- JAVA序列化和反序列化
- java 序列化和反序列化
- java序列化和反序列化
- java 序列化和反序列化
- java序列化和反序列化
- java序列化和反序列化
- 【Sublime】Mac下Sublime代码自动换行
- npm常用命令
- 动态规划——01背包问题
- Objective-C Runtime 运行时
- Gson 反序列化
- Java序列化和反序列化小记
- Jmeter之JDBC Request使用方法(oracle)
- 解决电脑自动开机问题
- 最小生成树~prim
- Yii2 mongodb – 关于mongoid的使用
- Cocos2d-x 3.x 的精灵修改色相(Hue)
- SDUT2139图结构练习——BFS——从起始点到目标点的最短步数
- android源码学习
- 【Android】Android Studio中使用OpenCV将彩图转换成灰度图