第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

流 字節(jié)數組 字符串

流 字節(jié)數組 字符串

尚方寶劍之說 2018-09-12 05:06:37
我在做對象序列化為json的時候,用的.net 自帶的類DataContractJsonSerializer。需要經歷這樣的流程:object—>stream->字節(jié)數組->字符串。我納悶為什么沒有提供這樣的方法object->字符串。我的問題:1.object->stream...僅僅是為了方法的通用性嗎?2.很像知道stream 在.net framework 中的作用,如果沒有這個東西,可以嗎?
查看完整描述

2 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

你的理解"序列化"的含義.

"序列化 (serialization)將對象的狀態(tài)信息轉換為可以存儲或傳輸的格式的過程。在序列化期間,對象將其當前狀態(tài)寫入到臨時或持久性存儲區(qū)。"

上面的解釋,涉及到兩個重要概念:存儲,傳輸.

存儲,傳輸的格式是什么?那就是字節(jié)流,或者說字節(jié)數組.

字符串,只是一種抽象,是對一段字節(jié)數組的邏輯含義的概括,比如,我給你四字節(jié)的字節(jié)數組,你認為這四個字節(jié)的數組是代表"字符串",還是代表"32整形值"呢?你當然不知道,這就需要提供這個四字節(jié)數組的人告訴你,他的這個四字節(jié)數組具體代表什么.

同樣,Stream 也只是一中抽象,Stream對象是一組對字節(jié)數組的操作,Stream對象內部使用字節(jié)數組存儲數據,對于不同的派生類FileStream,NetworkStream,都提供了自身優(yōu)化的方式來銜接內存中的字節(jié)數組與磁盤上或網絡IO設備上的字節(jié)數組.

json序列化后的實際對象應該是字節(jié)數組,而非字符串,只是為了便于人閱讀,才提供一定的方法可以將該字節(jié)數組轉換為可供人讀的字符串.

所以,對于你的第一個問題,不是為了通用性,而是對序列化過程的職責分離.至于拿到序列化字節(jié)數組后,你想用來干什么,就留給使用者去決定,這時候,你可以使用BinaryReader StreamReader TextReader等配合Encoding來將字節(jié)數組轉換成你想要的string,int32,double等.

Stream的作用,我在前面已經說過了,至于沒有這個東西的壞處就是:很多人會寫自己的 Stream.


查看完整回答
反對 回復 2018-09-25
  • 2 回答
  • 0 關注
  • 503 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號