Java中對象的序列化詳解及實(shí)例
Java中對象的序列化詳解及實(shí)例
把java對象轉(zhuǎn)化為字節(jié)序列的過程稱為對象的序列化。
把字節(jié)序列恢復(fù)為java對象的過程稱為對象的反序列化。
對象序列化的用途:
1.把對象的字節(jié)序列永久的保存到硬盤上,通常存放在一個文件中
2.在網(wǎng)絡(luò)上傳送對象的字節(jié)序列化
void writeObject(Object obj) 方法可對參數(shù)指定的obj對象進(jìn)行序列化,把得到的字節(jié)序列寫到一個目標(biāo)輸出流中(將指定的對象寫入 ObjectOutputStream。)
void readObject()方法 從一個源輸入流中讀取字節(jié)序列,再把它們反序列化為一個對象,并將其返回( 從 ObjectInputStream 讀取對象。)
只有實(shí)現(xiàn)了Serializable和Externalizable接口的類對象才能被序列化。
Externalizable接口繼承自Serializable接口,實(shí)現(xiàn)Externalizable接口的類完全由自身來控制序列化的行為,而實(shí)現(xiàn)Serializable接口類可以采用默認(rèn)的序列化方式
public static void readObj()throws Exception
{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.txt"));
Person p = (Person)ois.readObject();
System.out.println(p);
ois.close();
}
public static void writeObj()throws IOException
{
ObjectOutputStream oos =
new ObjectOutputStream(new FileOutputStream("obj.txt"));
oos.writeObject(new Person("lisi0",399,"kr"));
oos.close();
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Spring?Boot?Actuator?漏洞利用小結(jié)
spring對應(yīng)兩個版本,分別是Spring Boot 2.x和Spring Boot 1.x,因此后面漏洞利用的payload也會有所不同,這篇文章主要介紹了Spring?Boot?Actuator?漏洞利用小結(jié),需要的朋友可以參考下2023-11-11
詳解Java中NullPointerException的處理方法
這篇文章將帶大家來單獨(dú)看一個很常見的異常--空指針異常,這個可以說是每個Java程序員都必知的異常,所以我們不得不單獨(dú)學(xué)習(xí)一下,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2023-08-08
Object類wait及notify方法原理實(shí)例解析
這篇文章主要介紹了Object類wait及notify方法原理實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
java實(shí)現(xiàn)excel導(dǎo)入數(shù)據(jù)的工具類
這篇文章主要介紹了java實(shí)現(xiàn)的excel導(dǎo)入數(shù)據(jù)的工具類,需要的朋友可以參考下2014-03-03
設(shè)計(jì)模式系列之組合模式及其在JDK和MyBatis源碼中的運(yùn)用詳解
這篇文章主要介紹了組合模式及其在JDK和MyBatis源碼中的運(yùn)用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09

