[英]Java - Compress large string
在我的Java應用程序中,我從一些計算中得到了一個很長的字符串(從很長的字符串中,我的意思是大約600000個字符左右)。 但是我需要將此字符串發送給客戶端進行處理,因此,我需要壓縮的字符串最大為1000個字符。
我嘗試使用GZIPOutputStream以及Inflater和Deflater類,並且在最佳情況下,我得到了300000個字符的輸出字符串,這是很好的壓縮方式,但對於我而言,這還不夠。
我還嘗試了n次壓縮字符串,但是輸出比前一個大,因此只有一次壓縮成功。
那么,您建議我嘗試什么?
謝謝。
我同意@Peter Lawrey的觀點,嚴格按照這些要求,可能無法向客戶傳達如此重要的信息。
無論如何,我仍然建議三種可能的解決方案,具體取決於您的需求的靈活性:
input symbol compressed symbol ------------ ----------------- client 1 bill 2 date 3 amount 4 value 5 price 6 tax 7
如果語法很簡單,但詞匯量沒有那么大限制,則可以執行初始自定義壓縮以盡可能多地壓縮文檔的結構,然后執行第二次GZIP壓縮以壓縮數據。
並且不要忘記,您必須將客戶端應用程序與相應的解壓縮器捆綁在一起。
無論如何,我承認這不是一件容易的事。
在流中將響應傳遞到客戶端應用程序。 如果協議是HTTP,則可以使用Chunked Transfer Coding
。
如果其他所有操作失敗,則必須分頁結果,並按需分頁地將結果提供給客戶端:客戶端進行查詢,服務器執行該查詢並僅提供結果的第一頁。 然后,客戶端可以選擇閱讀下一頁。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.