java - Java中如何使用LZMA SDK压缩/解压

标签 java 7zip lzma

http://www.7-zip.org/sdk.html 该站点提供了一个用于压缩/解压缩文件的 LZMA SDK,我想试一试,但我迷路了。

有人有这方面的经验吗?还是教程?谢谢。

最佳答案

简答:不要

7zip sdk 陈旧且无人维护,它只是 C++ 库的 JNI 包装器。现代 JVM (1.7+) 上的纯 Java 实现与 C++ 一样快,并且依赖性和可移植性问题更少。

看看http://tukaani.org/xz/java.html

XZ是一种基于LZMA2(LZMA的改进版)的文件格式

发明 XZ 格式的人构建了 XZ 存档压缩/提取算法的纯 Java 实现

XZ 文件格式旨在仅存储 1 个文件。因此,您需要先将源文件夹 zip/tar 压缩到一个未压缩的文件中。

使用 java 库就这么简单:

FileInputStream inFile = new FileInputStream("src.tar");
FileOutputStream outfile = new FileOutputStream("src.tar.xz");

LZMA2Options options = new LZMA2Options();

options.setPreset(7); // play with this number: 6 is default but 7 works better for mid sized archives ( > 8mb)

XZOutputStream out = new XZOutputStream(outfile, options);

byte[] buf = new byte[8192];
int size;
while ((size = inFile.read(buf)) != -1)
   out.write(buf, 0, size);

out.finish();

关于java - Java中如何使用LZMA SDK压缩/解压,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5481487/

相关文章:

java - Arrays.BinarySearch 没有保证吗?

javascript - org.springframework.http.converter.HttpMessageNotReadableException : Required request body is missing 问题

java - 用数据库值填充数组列表

Java SQL : syntax error encountered at line xx column xx

powershell - 在 Powershell 脚本中运行 7-Zip

7zip - 7zip 自解压 zip 文件后运行文件不起作用

apache-flex - 如何在 Flash Player 11 中启用 LZMA 压缩?

Powershell 7Zip 压缩无法分配所需的内存

python - 缺少 lzma 库吗?

ios - LZMA SDK 为 iOS (xcode) 解压缩使用太多 RAM