摘要:與的作用是對基本數(shù)據(jù)和對象進行序列化操作進行支持。如果檢測到反序列化的類的和對象二進制流的不同,則會拋出異常。
ObjectInputStream與ObjectOutputStream的作用是:對基本數(shù)據(jù)和對象進行序列化操作進行支持。其中ObjectInputStream對象提供對基本數(shù)據(jù)和對象對持久存儲,當我們需要讀取這些存儲這些基本數(shù)據(jù)或?qū)ο髸r,可以創(chuàng)建文件輸入流對應的ObjectInputStream,進而讀取這些基本數(shù)據(jù)或?qū)ο蟆? 序列化有關的基礎知識: 1 需要序列化的類必須實現(xiàn)java.io.Serializable接口,否則會拋出NotSerializableException異常。 2 如果檢測到反序列化的類的serialVersionUID和對象二進制流的serialVersionUID不同,則會拋出異常。 3 Java序列化會將一個類中包含的引用中的所有的成員變量保存下來,所以里面的引用類型也要實現(xiàn)java.io.Serializable的接口。 4 對于不用采用默認序列化或無需序列化的成員變量,可以添加transient關鍵字,并不是說添加了transient關鍵字就一定不能序列化。 5 每一個類可以實現(xiàn)readObject、writeObject等方法實現(xiàn)自己的序列化策略,即使是transient修飾的成員變量也可以手動調(diào)用ObjectOutputStream的write*等方法,將成員變量序列化。 ObjectOutputStream 有關方法 1 public ObjectOutputStream(OutputStream out) throws IOException {} * 創(chuàng)建一個ObjectOutputStream去寫入指定的OutputStream,此構造函數(shù)將序列化流頭寫入底層流,調(diào)用者需要立即刷新流,以確保用于接收ObjectInputStreams的構造函數(shù)在讀取該頭時不會阻塞。 2 protected ObjectOutputStream() throws IOException, SecurityException {} * 為完全重新實現(xiàn)ObjectOutputStream的子類提供一種方法,使其不必分配僅由ObjectOutputStream的實現(xiàn)使用的私有數(shù)據(jù) 3 public void useProtocolVersion(int version) throws IOException {} * 指定在編寫流時使用的流協(xié)議版本 4 public final void writeObject(Object obj) throws IOException {} * 將指定的對象寫入ObjutoExtStudio流,對象的類、類的簽名、類及其所有超類型的非瞬態(tài)和非靜態(tài)字段的值都可以通過該方法寫入,重寫writeObject和readObject方法可以將默認的序列號重寫,該對象引用的對象是通過傳遞方式編寫的,以便ObjectInputStream可以重構等效的、完整的對象。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72005.html
摘要:序列化提供的一種對象序列化的機制,在該機制中,一個對象可以被表示為一個字節(jié)序列,該字節(jié)序列包括對象的數(shù)據(jù)有關對象的類型的信息和存儲在對象中的數(shù)據(jù)類型。類和是高程次的數(shù)據(jù)流,他們包含序列化和反序列化對象的方法。 序列化:Java提供的一種對象序列化的機制,在該機制中,一個對象可以被表示為一個字節(jié)序列,該字節(jié)序列包括對象的數(shù)據(jù)、有關對象的類型的信息、和存儲在對象中的數(shù)據(jù)類型。 反序列化:將...
摘要:是從文件系統(tǒng)中的文件中獲取字節(jié),至于什么文件,取決于主機環(huán)境,用于讀取原始字節(jié)流,如圖像數(shù)據(jù),假如想要讀取字符類型流,請使用。跳過個字節(jié)本地方法關閉文件輸入流 FileInputStream是從文件系統(tǒng)中的文件中獲取字節(jié),至于什么文件,取決于主機環(huán)境,F(xiàn)ileInputStream用于讀取原始字節(jié)流,如圖像數(shù)據(jù),假如想要讀取字符類型流,請使用FileReader。 ...
摘要:是繼承與的子類常用屬性文件描述符是否在文件尾部開始追加寫入用于讀寫映射操作文件的通道文件的路徑一個關閉鎖,只在方法中使用,確保多線程同步調(diào)用構造函數(shù)創(chuàng)建一個向指定對應的文件中寫入數(shù)據(jù)的文件輸出流創(chuàng)建一個向指定對應的文件中寫入數(shù)據(jù)的文件輸出流 FileOutputStream 是繼承與OutputStream的子類 1 常用屬性 private final FileDescriptor...
摘要:直接繼承與,實現(xiàn)了接口和接口,實現(xiàn)接口,意味著對象支持序列化操作,而實現(xiàn)接口,意味著之間可以比較大小。刪除此抽象路徑名表示的文件或目錄。標記此抽象路徑名指定的文件或目錄,從而只能對其進行讀操作。 showImg(https://segmentfault.com/img/bVbi3ls?w=2048&h=164);1 File直接繼承與Object,實現(xiàn)了Serializable接口和C...
摘要:但它融合了和的功能。支持對隨機訪問文件的讀取和寫入。的概述和作為集合的使用了解的概述類表示了一個持久的屬性集??杀4嬖诹髦谢驈牧髦屑虞d。屬性列表中每個鍵及其對應值都是一個字符串。 1_序列流(了解) 1.什么是序列流 序列流可以把多個字節(jié)輸入流整合成一個, 從序列流中讀取數(shù)據(jù)時, 將從被整合的第一個流開始讀, 讀完一個之后繼續(xù)讀第二個, 以此類推. 2.使用方式 整合兩個: S...
閱讀 3115·2021-10-13 09:40
閱讀 3971·2021-09-22 15:51
閱讀 1512·2021-09-22 15:48
閱讀 1081·2021-09-06 15:00
閱讀 1806·2019-08-30 15:43
閱讀 2372·2019-08-29 18:35
閱讀 1684·2019-08-29 16:18
閱讀 3630·2019-08-29 12:49