如何在Java項(xiàng)目中利用序列化與反序列化將對(duì)象文件寫入與導(dǎo)出?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、做網(wǎng)站與策劃設(shè)計(jì),江州網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:江州等地區(qū)。江州做網(wǎng)站價(jià)格咨詢:18982081108
Java類中對(duì)象的序列化工作是通過ObjectOutputStream和ObjectInputStream來完成的。
寫入:
File aFile=new File("e:\\c.txt"); Stu a=new Stu(1, "aa", "1"); FileOutputStream fileOutputStream=null; try { fileOutputStream = new FileOutputStream(aFile); ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream); objectOutputStream.writeObject(a); objectOutputStream.flush(); objectOutputStream.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(fileOutputStream!=null) { try { fileOutputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
讀?。?/strong>
FileInputStream fileInputStream=new FileInputStream(aFile); ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream); Stu s=(Stu)objectInputStream.readObject(); System.out.println(s);
注意:
對(duì)于任何需要被序列化的對(duì)象,都必須要實(shí)現(xiàn)接口Serializable,它只是一個(gè)標(biāo)識(shí)接口,本身沒有任何成員,只是用來標(biāo)識(shí)說明當(dāng)前的實(shí)現(xiàn)類的對(duì)象可以被序列化。
如果在類中的一些屬性,希望在對(duì)象序列化過程中不被序列化,使用關(guān)鍵字transient標(biāo)注修飾就可以。當(dāng)對(duì)象被序列化時(shí),標(biāo)注為transient的成員屬性將會(huì)自動(dòng)跳過。如果一個(gè)可序列化的對(duì)象包含某個(gè)不可序列化對(duì)象的引用,那么序列化操作會(huì)失敗,會(huì)拋出NotSerializableException異常,那么將這個(gè)引用標(biāo)記transient,就可以序列化了。
當(dāng)一個(gè)對(duì)象被序列化時(shí),只保存對(duì)象的非靜態(tài)成員變量,不能保存任何的成員方法,靜態(tài)的成員變量。
如果一個(gè)對(duì)象的成員變量是一個(gè)對(duì)象,那么這個(gè)對(duì)象的數(shù)據(jù)成員也會(huì)被保存還原,而且會(huì)是遞歸的方式。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。