2017-04-21 32 views
9

我想壓縮Java中的字符串(XML文檔),並將其作爲varchar存儲在Cassandra db中。我應該可以在從db讀取的同時解壓縮它。我查看了GZIP和lz4,並在壓縮時返回了一個字節數組。從java壓縮數據中獲取字符串,反之亦然java

我的目標是從壓縮數據中獲取一個字符串,這個字符串也可以用來解壓縮並取回原始字符串。 什麼是最好的方法?

+0

您的xml架構是否修復? –

+0

沒有它不固定。 –

+0

這些文檔的大小是多少?您是否擁有XML Schema? – ThomasRS

回答

3

我看不出壓縮你的數據的任何好理由:Cassandra可以透明地爲你做(它會默認LZ4你的數據)。因此,如果您的目標是減少您的數據足跡,那麼您就有一個不存在的問題,並且將XML文檔直接提供給C *。

順便說一下,所有的壓縮算法都需要字節數組併產生字節數組。作爲解決方案,您可以將類似base64編碼的內容應用於壓縮字節數組。在解壓縮時,反轉邏輯:解碼base64您的字符串,然後應用您的解壓縮算法。

0

沒有足夠的聲望評論這麼張貼爲答案。如果你想要一個字符串,那麼重要的壓縮將取決於你的數據。一個非常簡單的解決方案可能類似Java compressing Strings,但如果您的字符串只有字符和數字,那麼這種方法就行得通。您可以修改此解決方案以適用於大多數字符,但如果您沒有重複字符,則實際上可能會得到比原始字符串更大的字符串。

相關問題