Javaでxz圧縮を試みています。xz 1.5 圧縮ライブラリー、commons io 2.4 ライブラリー、および commons compress 1.8.1 ライブラリーを使用します。以下のコードを実行しようとしましたが、非常に一貫性のない結果が得られました。テキストは 70% 以上、オーディオおよびビデオ ファイルは 0.1% 未満 (1-圧縮/オリジナル * 100)。毎回圧縮する前にtarballを作成しています。これはテキストファイルに対してのみ機能するはずですか?
package makexz;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.compress.compressors.CompressorOutputStream;
import org.apache.commons.compress.compressors.CompressorStreamFactory;
import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream;
import org.apache.commons.compress.utils.IOUtils;
public class MakeXZ {
public static void main(String[] args) throws FileNotFoundException, IOException, Exception {
FileOutputStream dest = new FileOutputStream("C://TARDUMP//XZ//newvid.tar.xz");
CompressorOutputStream cos = new CompressorStreamFactory().createCompressorOutputStream(CompressorStreamFactory.XZ, dest);
String input = "C://TARDUMP//newvid.tar";
IOUtils.copy(new FileInputStream(input), cos);
cos.close();
}
}