我從webservice xml文件接收gzip格式壓縮的文件。 xml的原始大小約爲80Mb,而壓縮版本大約爲10Mb。這些XML文件存儲在我們的緩存中。替換gzip文件中的內容而不解壓縮
xml根包含表示8位唯一ID的屬性。所以,當我們提供來自緩存的響應時,我們需要在將xml返回給最終用戶之前將其另一個從另一個webservice接收到。
因此,這個過程應該是:
- 解壓縮緩存XML。
- 將緩存的ID替換爲從Web服務接收到的ID。
- 再次壓縮文件並將其返回給客戶端。
這是一個java軟件。我想知道是否有任何選擇來執行這個替換,而不需要解壓縮整個文檔並再次壓縮。任何一種部分讀寫......我不知道。
我一直在尋找一些java庫,可以做到這一點,但我沒有找到任何東西(也許是因爲它是不可能的)。
有什麼想法?謝謝。
你可以顯示代碼在哪裏解壓縮,替換,然後再次壓縮?可能還有待改進的空間 –
尚未編碼,但其想法是:1.使用未壓縮文檔(使用gzipinputstream)創建一個byte []。 2.逐字節替換8位數字(避免任何臨時副本)。 3.使用gzipoutputstream壓縮此字節[]。 – JBalaguero