问题标签 [zipinputstream]

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 投票
0 回答
368 浏览

java - 支持 hdfs 中受密码保护的 zip 文件吗?

我们使用 zipinputstream 来读取 hdfs 中存在的 zip 文件。但是现在我们有受密码保护的 zip 文件。有没有办法仅在 hdfs 中解码 zip 文件,然后将其传递给 zipinputstream?有一个 java 库 zip4j,它可以工作仅使用本地文件系统,但由于我们有大量文件,我们只想在 hdfs 中解码和打开文件。有什么办法可以实现吗?

0 投票
0 回答
607 浏览

java - Android 6.x 更新后 ZipInputStream getNextEntry() 返回 Null

我有工作解压缩代码,它使用 ZipInputStream 从 InputStream 解压缩一个大的 zip 文件。我在 Android 5.1.1 上测试了一些示例 ZIP 文件。我最近将我的开发 Galaxy S5 更新到了 Android 6.0.1。相同的代码不再适用于相同的测试 ZIP 文件。ZipInputStream.getNextEntry() 在第一次迭代时返回 null。

Android 5.1.1 和 Android 6.0.1 中的 ZipInputStream 会发生什么变化吗?我不能使用 ZipFile,因为我只有用户通过文档/内容提供程序选择的流。

是否有解压缩 InputStream 的替代方法?我无法从 [File] 源解压缩,它必须是流。

该代码类似于许多用于解压缩的标准片段:

编辑:似乎与我的 SD 卡有关。可能是 SD 卡加密导致三星 Galaxy S5 上的 Android 6.0.1 出现问题。解压缩与内部存储(也加密)上的 ZIP 文件一起使用。

编辑2:这与解压缩无关,它与我的SD卡加密是否启用有关。关闭 SD 卡加密,一切正常。三星在带有 Galaxy S5 的 Android 6.0.1 上的 SD 卡加密出现了问题。我无法使用我的应用在设备存储和 SD 卡之间复制文件。我的文件应用程序虽然有效。

我正在针对 API 22 进行编译,因此我没有添加新的运行时权限,并且我知道如果我的目标是 22 或更低,我不需要它们。

0 投票
2 回答
364 浏览

java - 带有jackrabbit的zip文件

我正在尝试为 jackrabbit 进行上传,但 zip 文件下载已损坏

maven依赖:

上传代码:

它将zip文件上传到jackrabbit,但是当我下载文件时,它已损坏

0 投票
2 回答
1578 浏览

java - 检查 FileInputStream 是否关闭的最佳方法是什么?

所以我有创建ZipInputStream所需的这个FileInputStream ,我想知道如果FileInputStream关​​闭, ZipInputStream会发生什么。考虑以下代码:

zis remais开门吗?ZipInputStream 对象会发生什么?有没有办法可以测试这个?

0 投票
2 回答
866 浏览

java - Java ZipInputStream 提取错误

下面是一些从仅包含单个文件的 zip 文件中提取文件的代码。但是,提取的文件与通过 WinZip 或其他 zip 实用程序提取的相同文件不匹配。如果文件包含奇数个字节,我希望它可能会关闭一个字节(因为我的缓冲区大小为 2,一旦读取失败,我就会中止)。但是,在分析(使用 WinMerge 或 Diff)以下代码提取的文件与通过 Winzip 提取的文件时,Java 提取中存在多个字节丢失的区域。有谁知道为什么或如何解决这个问题?

我能够使用此图像产生错误(将其保存并压缩为 sample3.zip 并在其上运行代码),但任何足够大小的二进制文件都应显示差异。

在此处输入图像描述

0 投票
3 回答
2773 浏览

java - Java InputStream 读取缓冲区

假设我正在尝试从这样的 Java InputStream 中读取数据:

我正在解析一个二进制文件,在这种情况下我将缓冲区设置为 2,因为我想读取下一个短文件。如果我想读取下一个 int 等其他类型,我会将缓冲区设置为 4。问题是有时 zis.read(buffer) 不会填充缓冲区,即使我知道有足够的未读数据来填充缓冲区。我可以简单地将整个文件内容转储到一个数组中并解析它,但最终我实现了我自己的流阅读器来做这似乎是在重新发明轮子。我还可以实现一个 read() 函数来检查读取计数,如果小于缓冲区大小,则请求更多数据来填充缓冲区,但这既低效又丑陋。有一个更好的方法吗?

这是此处发布的问题的后续问题:

Java ZipInputStream 提取错误

0 投票
0 回答
200 浏览

java - 有没有办法将完整的 ZipInputStream 转换为单个 InputStream 以将其保存为磁盘上的 zip 文件

这与 AEM Translation API 有关,TranslationObject 可以为我们提供一个上下文包作为 ZipStreamInput,我们需要获取该输入并转换为 Base64 字符串以作为 XML 的一部分发送,或者转换为要在本地保存的实际 zi​​p 文件。

我尝试了很多东西,但都产生了一个 0 字节的文件,很可能是因为 ZipInputStream 的工作方式需要使用 getNextEntry。(同样,ZipInputStream 的使用是由 API 强加给我们的)

任何见解将不胜感激。

另一种解决方案是提取驱动器上的流,并从那里创建一个新的 zip,将该文件作为输入流打开,然后进行转换,这感觉非常复杂。

0 投票
1 回答
861 浏览

scala - ZipInputStream.read 中的 ZipEntry

我正在使用 ZipInputStream 读取 zip 文件。Zip 文件有 4 个 csv 文件。有些文件是完全写入的,有些是部分写入的。请帮助我找到以下代码的问题。从 ZipInputStream.read 方法读取缓冲区是否有任何限制?

0 投票
1 回答
1104 浏览

java - Extract a remote zip file and unzip it to a hdfs in java

What i'm doing is just unzip and upload a zip file ,which can be download from a website, on to a hdfs. And here's the code:

As you see, I used openStream method to change the url into inputstream, and then use the inputstream as a parameter of the ZipInputStream.Finally i get an entry from the zipinputStream. But the problem is the getNextEntry method returns a null value, which means the output of my code is false,false,true. And i just can't find where the problem is.

0 投票
1 回答
598 浏览

java - 尽管条目存在,为什么 zipInputStream 为空?

我正在尝试解压缩存档, zis.getNextEntry()给我nextEntry,我可以看到条目的正确名称,但 zip 输入流本身是空的。为什么?

下面是一些调试信息,您可以在其中看到 - 条目存在,但没有从流中读取:

在此处输入图像描述