亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何更新文件中包含的序列化 HashMap?

如何更新文件中包含的序列化 HashMap?

撒科打諢 2023-02-23 14:36:54
我有一個包含序列化 HashMap 的文件,其中包含一個 MyObject 類型的元素:?? sr java.util.HashMap???`? F  loadFactorI     thresholdxp?@      w      t (a54d88e06612d820bc3be72877c74f257b561b19sr  com.myproject.MyObject C?m?I?/ I  partitionL hashcodet Ljava/lang/String;L idt Ljava/lang/Long;L offsetq ~ L    timestampq ~ L topicq ~ xp    q ~ ppppx現在,我還有一些其他 MyObject 對象要添加到該地圖。但是,我不想先讀取地圖并將其反序列化回內存,然后更新它,然后將整個更新的地圖寫回文件。如何以更有效的方式更新文件中的序列化?
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

如何以更有效的方式更新文件中的序列化?

基本上是通過對 Java 在將對象序列化為二進制表示形式時使用的二進制協議進行逆向工程。這將使您能夠了解該二進制 blob 中的哪些元素需要以哪種方式更新。

其他人已經這樣做了,例如,請參見此處。

其他任何事情都只是工作。你坐下來寫代碼。

或者你寫幾行代碼讀取現有文件,然后寫出一個新文件,其中包含該地圖以及你需要的其他對象。

你看,效率取決于角度:

  • 您是否認為使用二進制序列化對象對文件進行單次更新時間緊迫,以至于需要通過手動“修補”該二進制文件來完成

  • 您認為花費數小時和數小時來學習底層二進制格式以正確更新其內容是否更有效?

這樣做的唯一正當理由(我能想到):學習這些東西:二進制數據格式,以及如何修補內容。但即使那樣,也可能有“更好”的分配給你更多的見解(在現實世界中具有真正的價值),而不是……花時間重新實現 Java 二進制序列化。


查看完整回答
反對 回復 2023-02-23
  • 1 回答
  • 0 關注
  • 75 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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