Java序列化和反序列化小记
生活随笔
收集整理的這篇文章主要介紹了
Java序列化和反序列化小记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
序列化:將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;} }總結
以上是生活随笔為你收集整理的Java序列化和反序列化小记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法导论之用于不相交集合的数据结构
- 下一篇: centos部署Redis和Java开发