2

任意のバイナリ データ (基本的に、さまざまな一般的な形式のファイル、JPEG、PDF、MS-Office、およびその他の奇妙なファイル) を保存する必要があります。圧縮が遅いことは問題ではありませんが、適度に高速な解凍と、可能な限り良好な圧縮率を探しています。

今のところ、私のシステムは圧縮されていないデータをすぐに保存し、デーモンは後でデータを圧縮しようとします。今のところ、私が実装した唯一のオプションは GZIP を使用することです。ファイルを圧縮できる場合は、デーモンによって圧縮されたバージョンに透過的に置き換えられます (そのため、圧縮が遅いことはまったく気になりません)。他にもオプションがあれば、デーモンにすべての選択肢を試してもらい、最適な圧縮が得られるものを選択させたいと思います。

システムをシンプルに保つために、Stream API を介した使用をサポートしていないもの (7-Zip LZMA など) を統合するために多大な時間を費やしたくありません。JRE によって提供される GZIP 以外に、有用な圧縮の実装はありますか? FOS優先。

4

3 に答える 3

3

bzip lib を試すことができます。通常、bzip は速度を犠牲にして圧縮率が向上します。以下のいくつかの実装:

http://www.kohsuke.org/bzip2//

http://code.google.com/p/jbzip2/

http://www.java2s.com/Code/Java/File-Input-Output/BZip2format.htm

Apache Commons の圧縮ライブラリには、bzip の実装もあります。

http://commons.apache.org/compress/

于 2012-01-18T11:38:26.863 に答える
1

LZMAの使用を試すことができます。誰かがここでストリームを使用して実装したようです。

于 2012-01-18T11:41:22.403 に答える
0

純粋な Java での別の LZMA 実装: XZ for Java (LZMA を含む)。

于 2012-01-24T17:11:12.157 に答える