簡體   English   中英

用Java反序列化對象

[英]Deserializing Objects in Java

假設我有一個很大的文件,其中許多對象已被序列化(這是簡單的部分)。 去反序列化時,我需要能夠隨機訪問文件中的對象。 我能想到的唯一方法是以某種方式存儲指向每個對象的文件指針。

基本上,我將獲得一個大的序列化對象文件,並且在我只想檢索一個對象時,不想對整個文件進行反序列化。

誰能指出我在這個方向上的正確方向?

你不能 序列化由於某種原因被稱為序列化。 它是串行的。 由於多種原因(包括流頭,對象句柄,...),無法隨機訪問對象流。

直接序列化將永遠不是您想要的解決方案。 名稱的serial部分意味着將對象線性寫入ObjectOutputStream

序列化格式是眾所周知的,這是指向 Java 6序列化格式的鏈接

您有幾種選擇:

  1. 反序列化整個文件,然后從那里開始。
  2. 編寫代碼以讀取序列化的文件並生成索引。 甚至可以將索引存儲在文件中以備將來使用。
  3. 放棄序列化到文件並將對象存儲在數據庫中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM