課程
/后端開發
/Java
/文件傳輸基礎——Java IO流
this.stuage=s.readInt(); 可以使用this.stuage=s.readInt();代替嗎? 怎么知道反序列化的元素是stuaged的?
2016-07-07
源自:文件傳輸基礎——Java IO流 6-2
正在回答
stuage是通過s.writeInt(stuage)寫入的,這里只有一個transient?int型,讀的時候自然沒問題,如果有兩個transient?int型是按照寫入的順序讀取的。假設stusex=1,stuage=20,比如寫入順序是:
s.writeInt(stusex);
s.writeInt(stuage);
第一次執行s.readInt()會讀取1,
再次執行s.readInt()會讀取20,
如果還想再執行s.readInt()會報java.io.EOFException異常。
每天一學 提問者
反序列化就是把byte重新轉為原本類型
序列化之后是byte格式的,readInt正好可以讀取byte類型將其轉為int型,底層機制是通過位運算實現的,你可以自己去看,int32位通過左移24位 左移16位 左移8位 左移0位四次讀取,再具體我也忘了
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內容
2 回答什么是序列化和反序列化
5 回答在自行序列化的時,在自行序列化的類中重寫的方法writeObject和readObject方法是怎么被調用的,程序中也沒有用該類對象調用這兩個方法???具體的邏輯是怎樣的呢,是自行就被調用了嗎?
2 回答關于調用自定義的序列化方法的問題
2 回答序列化和反序列化具體用在什么地方
1 回答序列化和反序列化問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-08-15
stuage是通過s.writeInt(stuage)寫入的,這里只有一個transient?int型,讀的時候自然沒問題,如果有兩個transient?int型是按照寫入的順序讀取的。假設stusex=1,stuage=20,比如寫入順序是:
s.writeInt(stusex);
s.writeInt(stuage);
第一次執行s.readInt()會讀取1,
再次執行s.readInt()會讀取20,
如果還想再執行s.readInt()會報java.io.EOFException異常。
2016-07-08
反序列化就是把byte重新轉為原本類型
序列化之后是byte格式的,readInt正好可以讀取byte類型將其轉為int型,底層機制是通過位運算實現的,你可以自己去看,int32位通過左移24位 左移16位 左移8位 左移0位四次讀取,再具體我也忘了