簡體   English   中英

Java-壓縮大字串

[英]Java - Compress large string

在我的Java應用程序中,我從一些計算中得到了一個很長的字符串(從很長的字符串中,我的意思是大約600000個字符左右)。 但是我需要將此字符串發送給客戶端進行處理,因此,我需要壓縮的字符串最大為1000個字符。

我嘗試使用GZIPOutputStream以及Inflater和Deflater類,並且在最佳情況下,我得到了300000個字符的輸出字符串,這是很好的壓縮方式,但對於我而言,這還不夠。

我還嘗試了n次壓縮字符串,但是輸出比前一個大,因此只有一次壓縮成功。

那么,您建議我嘗試什么?

謝謝。

我同意@Peter Lawrey的觀點,嚴格按照這些要求,可能無法向客戶傳達如此重要的信息。

無論如何,我仍然建議三種可能的解決方案,具體取決於您的需求的靈活性:

  1. 如果你所有的輸入字符串有一個限制的詞匯 (它不允許的字母,符號和數字的自由,隨意組合,但它僅限於一特定的業務的話,標識符和值),也是一個簡單的語法 ,您可以嘗試設計自己的壓縮算法 例:

input symbol compressed symbol ------------ ----------------- client 1 bill 2 date 3 amount 4 value 5 price 6 tax 7

如果語法很簡單,但詞匯量沒有那么大限制,則可以執行初始自定義壓縮以盡可能多地壓縮文檔的結構,然后執行第二次GZIP壓縮以壓縮數據。

並且不要忘記,您必須將客戶端應用程序與相應的解壓縮器捆綁在一起。

無論如何,我承認這不是一件容易的事。

  1. 中將響應傳遞到客戶端應用程序。 如果協議是HTTP,則可以使用Chunked Transfer Coding

  2. 如果其他所有操作失敗,則必須分頁結果,並按需分頁地將結果提供給客戶端:客戶端進行查詢,服務器執行該查詢並僅提供結果的第一頁。 然后,客戶端可以選擇閱讀下一頁。

暫無
暫無

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

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