日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java序列化和反序列化小记

發布時間:2025/4/16 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java序列化和反序列化小记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
序列化:將java對象轉換為字節序列的過程叫做序列化
反序列化:將字節對象轉換為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序列化和反序列化小记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。