问题标签 [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 回答
265 浏览

java - Apache Commons:不支持的ZipFeatureException (LZMA)

我想解压缩使用 Windows 10 的压缩功能创建的 .zip 文件(其中包含 .jpg 文件)。

首先我用Java 8的本机测试了它,util.zip.ZipEntry但一直invalid CEN header (bad compression method)报错,这似乎是由于与Win10的压缩不兼容造成的。

因此,我切换到 Apache Common 的Compress库(1.2 版)。存档中的前两个图像解压缩正常,但第三个总是抛出异常:

org.apache.commons.compress.archivers.zip.UnsupportedZipFeatureException: 条目 image3.jpg 中使用的不支持的压缩方法 14 (LZMA)

如何使用Compress库完全解压缩此存档?这甚至可能吗?

我的代码:

0 投票
1 回答
512 浏览

java - 从 TarArchiveInputStream 获取特定的文件输入流

我有一个 tar 文件,其中包含许多文件。我需要从 tar 文件中获取特定文件并从该文件中读取数据。

我正在使用下面的代码解压文件,我将使用其他函数读取这个返回的输入流。

当我这样做时,我得到空指针异常versionInputStream = new FileInputStream(entry.getFile());

我知道我们可以先将此文件保存在目录中,然后再读取文件,但我不想将此文件保存在目录中。

有什么方法可以在不将文件保存到某个目录的情况下读取此文件?

0 投票
0 回答
131 浏览

java - 使用 Apache Commons Compressor 进行慢速 LZ4 解压

我从第三方收到了一些经过 LZ4 帧压缩的数据。然后我需要解压缩它,我正在使用 Apache Commons Compressor。代码如下:

这直接来自教程,但是速度很慢,数据大小为:

解压后的 14411185 字节到 31961088 字节

速度是:

解压耗时 7295 毫秒

这给了我 (14411185*8) / (7295/1000) = 15,803,904 (15.8MB/秒) 的解压速度。这是在 JDK15 64 位、Win10 i7 8 核、32Gb 内存上运行的

LZ4 的引用速度为 4530 MB/s(参考 ZStandard 的网页)。这意味着我使用 apache commons 压缩器要慢 300 倍。有没有人见过这么差的速度?

注意我已经尝试过预热 apache commons 压缩器,但没有任何改变。

谢谢。

问候,

尼尔

0 投票
1 回答
130 浏览

inputstream - 从java中的tar存档随机文件访问

java - 如何从java中的tar存档进行随机文件访问?使用 apache-commons-compress tarArchiveInputStream 没有方法可以根据其 tarArchiveEntry 名称获取特定文件。对于文件对象(bytes[])的每个查询,每次都需要遍历整个 tar 文件。在这种情况下,如何使用 tar 档案进行高效编程?

0 投票
1 回答
396 浏览

java - 如何将 TarArchiveOutputStream 转换为字节数组而不保存到文件系统中

我有一个 tar.gz 文件的字节数组表示。添加新的配置文件后,我想获取新的 tar.gz 文件的字节数组表示。我想完全在代码本身中执行此操作,而不向本地磁盘创建任何文件。

下面是我在java中的代码

如何将 tarOutputStream 转换为字节数组?

0 投票
1 回答
36 浏览

java - Apache Commons Compress:ZipArchiveEntry.getUnixMode() 始终返回 0

在分析结果文件时,该值被正确写入,所以setUnixMode()可能工作正常,但getUnixMode()总是返回 0。有没有人有这方面的经验?

0 投票
1 回答
179 浏览

java - org.tukaani.xz.CorruptedInputException:在 java 中提取 7z 存档文件时压缩数据损坏

获取 org.tukaani.xz.CorruptedInputException:提取 7z 文件时压缩数据损坏错误。我正在使用 common-compress-1.21.jar 和 xz-1.9.jar。这是我的代码

堆栈跟踪错误

在这一行中,sevenZFile = new SevenZFile(channel);它的抛出错误。

我已经在 ubuntu OS 中为这个文件创建了 7z 存档文件,它抛出异常,我创建的在线网站的 7z 存档工作正常。ubuntu有什么问题吗?以及如何解决这个问题? e 提前致谢。

0 投票
0 回答
31 浏览

java - java.io.IOException:使用来自 Apache Commons 的 BZip2CompressorInputStream 时流意外结束

在这段代码中,我采用了一个压缩的字节数组,使用 bZip2 压缩,然后尝试解压缩它。

字节数组compressedBytes 中有部分文件。(高达 2 kB 的 BUFFER_SIZE,实际文件为 25 kB)。

我只需要解压缩部分文件,因为文件可能很大。我不明白,为什么我得到Unexpected end of stream错误。我有类似的 GZip 代码可以正常工作。

0 投票
0 回答
21 浏览

spring-boot - 这个以 gav:// 开头的包源是什么以及如何从这个源升级包?

在我构建的一个 docker 映像中遇到了以下人工制品。那么,想知道这个包源 ( gav://) 是什么以及如何升级它?

gav://org.apache.commons:commons-compress:1.19

0 投票
0 回答
30 浏览

java - 解压缩 7z 保护文件

如何在 Java 中解压缩受密码保护的 7zip 文件?我找到了一种方法,但它不支持受密码保护的文件。这里是