问题标签 [apache-commons-compress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
704 浏览

java - 在内存中解压缩 ArchiveInputStream

如果来自apache commons compress lib中的ArchiveInputStream的ArchiveEntry是否有可能是另一个Archive,那么我可以将该archiveEntry解压缩到内存中吗?

谢谢

0 投票
1 回答
1460 浏览

android - android dlavikvm-在 XZ 压缩时堆出 ot 内存分配

我正在尝试在 API 2.3.3 上将 tar 压缩为 tar.xz。

无论我做什么,我都会收到此错误:

这是导致它的代码:

我已经制作了几个不同的版本,但它们都产生相同的错误。我确实在我的应用程序中加载了一个图片库,但尝试在不加载画廊的情况下进行压缩,它产生的效果相同。

有没有人知道问题是什么?解决方案是什么?或者也许是将tar压缩为tar.xz的代码?

谢谢你的帮助。

玉眼。

0 投票
1 回答
4758 浏览

java - 如何使用 Apache Commons Compress 将文件附加到 .tar 存档?

我阅读了如何将文件附加到 java 中的 tar 存档?将文件附加到档案而不读取/重写整个档案,并将条目添加到 tar 文件而不覆盖其现有内容,但没有给出好的答案。此外,我没有足够的声誉发表评论。所以我在这里创建了一个新问题。

有没有办法在 tar 存档中附加文件?如果文件已经存在,我想替换它。

我已经开始编写以下方法,但是当添加文件时,它会删除存档内容。我在apache compress 网站上没有找到任何示例。

0 投票
6 回答
32226 浏览

java - 使用 Commons Compress 将目录压缩到 tar.gz

我在使用公共压缩库创建目录的 tar.gz 时遇到问题。我有一个目录结构如下。

我正在使用以下代码进行压缩。它运行良好,无一例外。但是,当我尝试解压缩该 tar.gz 时,我得到一个名为“childDirToCompress”的文件。它的大小正确,因此文件在焦油处理过程中已清楚地相互附加。所需的输出将是一个目录。我无法弄清楚我做错了什么。任何明智的公共压缩器都可以让我走上正确的道路吗?

0 投票
3 回答
2427 浏览

java - 并行 BZip2 压缩

我正在使用Apache Commons Compress for Java 将多个日志文件压缩到一个存档 tar.bz2中。

但是,压缩需要很长时间(> 12 小时),因为我每天压缩大约 20GB 的文件。

由于这个库压缩文件单线程,我想知道是否有办法做到这一点多线程。

我找到了很多解决方案(命令行 pbzip2 或一些 C++ 库),但我为 java 找到的只是这篇博文:

https://plus.google.com/117421466255362255970/posts/3jfKVu325zh

看来我不能在我的 Java 应用程序中使用它。

外面有什么吗?你会推荐什么?还是有另一种更快的解决方案,具有类似的压缩率,例如 bzip2 ?

0 投票
1 回答
1244 浏览

java - 如何使用 Apache commons compress library 从 ZipArchiveInputStream 获取单个文件内容

我有 org.apache.commons.compress.archivers.zip.ZipArchiveInputStream 对象,我可以从中获取每个 ArchiveEntry 项目并获取单个文件的元数据。但我需要知道将每个文件的内容作为 Blob 获取的方法。

使用 org.apache.commons.compress.archivers.zip.ZipFile 可以完成,但 ZipFile 具有带有物理或临时 File 对象或文件位置的构造函数。我不想为此创建一个临时文件。

即使有办法将 ZipArchiveInputStream 转换为 ZipFile,也可以间接解决问题。

简而言之,我的要求是从 InputStream/Blob 中读取一个 Zip 文件,并将单个文件作为 BLOB 存储在数据库中。

仅供参考:我正在使用 org.apache.commons :: commons-compress :: 1.4.1

任何解决方案/想法/建议都受到高度赞赏。

干杯库姆

0 投票
1 回答
1400 浏览

java - 用 Java 中的 Commons Compress 解压后如何删除 ZIP 存档?

我编写了一个解压缩 ZIP 存档的程序,然后递归地解压缩或提取其中找到的存档。ZIP 中的档案可能是 tar 或 ZIP 档案,我可以很好地提取它们。

在一些新目录中提取内部档案后,我想删除它们。这适用于 tar 档案,但由于某种原因,它不适用于 ZIP 档案。我已经关闭了所有流,如果删除失败,我会使用 deleteOnExit 作为故障保险,但这也不起作用。

应该没有打开的流,除非关闭 ArchiveInputStream 实际上并没有关闭流。但这同样适用于 tar 档案。

我在某处读到有人可以设法删除 ZIP 档案,调用父文件上的 listFiles() 并找到 ZIP 档案并删除它,但这听起来像是一个奇怪的复杂过程。必须有一些更简单的方法。

编辑:

该问题特定于 Windows。在 Linux(SliTaz 4 和 Red Hat Enterprise 5)上,这可以正常工作。这告诉我 Windows 以某种方式锁定了 ZIP 档案,这似乎有点奇怪。

0 投票
2 回答
7317 浏览

java - 从 InputStream 创建的 ZipArchiveInputStream,无法读取内容

工作代码:

不工作的代码

想法不是从 InputStream 中读取,而是尝试从 InputStream 创建 ZipArchiveInputStream,以便我可以利用 canReadEntryData() 方法。canReadEntryData() 工作得很好。它对普通文件返回 true,但我无法从 ZipArchiveInputStream 读取内容。

请帮忙。请指出我哪里出错了。

0 投票
1 回答
11392 浏览

java - java.util.zip.ZipException:存储的块长度无效

我正在尝试将 ZipArchiveEntry 读取到字符串。我有下面的代码,我遇到了异常

我的代码如下

我得到以下异常

真的坚持了很久。请帮忙。

0 投票
1 回答
1217 浏览

java - 使用 commons.apache.compress 向嵌套 zip 文件添加条目

我的 Zip 文件结构是这样的:

t1.zip --> t2.zip --> sample.txt

我想替换sample.txt。如果它是一个级别,我能够做到。请帮助我处理多级嵌套 zip 文件。

我的示例代码

我试过了

我的意图是遵循apache文档页面中的示例

但我不清楚,如何将存档条目 2 级别放在里面?