2011-05-13 50 views
3

我從以下bit:是否有可能在java中搜索帶有壓縮對象的文件?

我可以執行我的對象的壓縮版本的方法,例如的isEmpty(郵政編碼(串行(X)))ORACLE讀?

由於對象的編碼,對於任意對象來說這並不是真正可行的。對於特定的對象(如字符串),您可以比較結果的比特流。編碼是穩定的,因爲每當同一個對象被編碼時,它被編碼成相同的一組位。

所以我有這個想法,說如果我有4M東西長字符數組,有可能是我把它壓縮到幾百使用GZIPOutputStream字節,然後映射整個文件到內存中,並通過比較比特來對它進行隨機搜索?說如果我正在尋找一個"abcd"的字符序列,我可以以某種方式獲得壓縮版本"abcd"的位序列,然後只是在文件中搜索它?謝謝。

+0

根據壓縮算法它可以工作,但壓縮並不一定會尊重字節邊界,所以搜索可能真的很痛苦。 – 2011-05-13 14:43:16

回答

1

您不能使用GZIP或類似的工具來處理流,因爲每個字節的編碼都會發生變化。即確定一個字節意味着讀取前一個字節的唯一方法。

如果您想隨機訪問數據,您可以將字符串分成更小的部分。這樣你只需要解壓一小段相對較短的數據。

+0

這很好,謝謝 – user685275 2011-05-16 22:16:53

相關問題