问题标签 [zipoutputstream]

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 回答
602 浏览

java - ZipOutputStream : BufferedOutputStream 与 PrintStream

我想使用 ZipOutputStream 写入大块字节首选什么?

...

或者

0 投票
0 回答
2052 浏览

java - 多线程写入 ZipOutputStream

问题:我需要下载大量文件(文件大小可达 2GB)并将它们以 zip 格式发送给请求资源的客户端。我正在寻找并行化该操作。目前,我必须使用的库OutputStream(在我的情况下是ZipOutputStream)作为输入,并使用 ApacheCommons 将下载文件的内容写入该输出流IOUtils

这种方法的问题是一切都是按顺序发生的。我必须下载一个文件,然后写入 OutputStream,创建一个新的 zipEntry,关闭该条目,然后继续下一个。我想并行执行下载操作,如果可能的话,我还需要ZipOutputStream并行写入。

有人遇到过这个问题吗?

我计划更改该库的签名以返回InputStream下载的资源,以便我可以并行获取这些内容,然后按顺序为每个流创建新的 ZipEntry。这样我至少可以并行下载文件。我创建 ZipOutStream 的方式如下:

有什么想法吗?

0 投票
0 回答
720 浏览

java - ZipOutputStream.setLevel(0) 在 Linux 和 Windows 环境中的不同行为

我正在尝试优化一个方法 writeZipResults,它采用 ByteOutputStream 列表并将其转换为单个 zip 文件作为 ZipOutputStream。

方法定义:

}

为了优化上述方法,我添加了 zip.setLevel(0) 即无压缩,这最大限度地减少了方法执行时间,从而在我的本地窗口系统中大大扩展。

但是当我在 linux 环境中使用 zip.setLevel(0) 运行相同的代码时,我没有获得与 Windows 系统下相同的性能。

我的观点是来自 Linux 的应用程序日志(以黄色突出显示)和我的本地 Windows 系统为具有完全相同数据集的相同场景捕获的:

在此处输入图像描述

请建议如何在linux环境下优化方法?

0 投票
0 回答
167 浏览

java - 使用 Apache POI 将用户定义的对象存储在 MS Excel 中的单元格中

我有一个用户定义的对象,需要为每一行存储在一个单元格中。

到目前为止,我使用以下过程将值存储为字符串,(1.) 将对象转换为字节 [] - 使用 ByteArrayOutputStream (2.) 将字节 [] 转换为字符串 - 使用 Base64 编码。我再次将存储的值读取为,(1.)将字符串转换为字节 [] - 使用 Base64 解码(2.)将字节 [] 转换为对象 - 使用 ByteArrayInputStream

这对我来说很好,但是 Excel 的大小从 800KB 增加到 1.1MB(例如)。因此,为了进一步减小文件大小,我使用 ZipOutputStream 压缩字节 [] 值,然后使用 Base64 编码转换为字符串。但这进一步将文件的大小增加到 2.2MB。因此,如果我正在处理压缩的 byte[] 值,我认为 Base64 编码会增加文件的大小。

如果我在这里做错了什么/是否有更好的选择将对象存储到 excel 单元格中,请告诉我。PS我将阅读和使用存储的对象以用于进一步的目的。

0 投票
1 回答
630 浏览

java - ZipOutputStream 类的 closeEntry()

我正在用 Java7 编写代码,并使用 try-with-resources 功能。当我创建 ZipOutputStream 的实例时。通过这样做,我不再需要关闭 finally 块中的流。try-with-resources 管理它(当然是由 JVM)。
我的问题是 - closeEntry()的使用怎么样。我应该在我的 try 块中编写这个方法,还是应该删除它,JVM 会通过 try-with-resources 功能自动关闭它,就像使用方法 close() 一样?

我几乎可以肯定它与 try-with-resources (或 finally 块)无关,我应该在我的 try 块中而不是在 finally 块中执行它(如果我使用常规的 try-catch-finally ),但我想确定一下。

谢谢!!!

0 投票
1 回答
3575 浏览

java - Java:Zipinputstream 到 Zipoutputstream 导致“未找到中央目录结尾签名”错误

我尝试将 Zip 从 a 复制Zipinputstream到 a Zipoutputstream

我将 Zip 存储byte[]在 Oracle 数据库中。我Zipinputstream用来解压缩 zip(稍后我想编辑 Zip),然后将其放入 aZipoutputstream中以获取新的byte[]并使用此数组稍后通过 a 下载文件ServletOutputStream。当我创建一个新文件时 - 没有Zipinputstream- 它可以工作。但是当我使用时,Zipinputstream我得到了错误。

这是我的代码:

0 投票
2 回答
98 浏览

android - Android 压缩文件

我创建了一个目录,其中存储了一些图像。现在,要将其压缩为单个 .zip 文件,我使用了以下代码:

我从以下来源获得此代码:http ://www.java2s.com/Code/Java/File-Input-Output/Makingazipfileofdirectoryincludingitssubdirectoriesrecursively.htm

当我在指定目录中运行此代码时,会使用指定名称创建一个 .zip 文件,但是当我尝试使用 Android 或 PC 上的任何软件(winzip 等)打开它时,它会显示以下错误消息:这文件已损坏或不是有效的 zip 文件”

任何帮助,将不胜感激。

0 投票
2 回答
5274 浏览

java - 如何创建多部分 zip 文件并将其读回?

我如何正确地将字节压缩ByteArrayOutputStream到 a然后使用 a 读取ByteArrayInputStream?我有以下方法:

当我执行此代码时,底部的断言失败,因为entry.sizeis -1。我不明白为什么提取的实体与压缩的实体不匹配。

0 投票
0 回答
295 浏览

java - 邮编贾斯珀报告

我正在尝试压缩多个碧玉报告。我可以压缩一份报告,但不能压缩多份报告。我正在使用 Java 列表添加相同的 Jasperprint 只是为了测试,这是否可以压缩多个报告。

0 投票
2 回答
1425 浏览

java - JAVA - 使用带有 FileInputStream 的 ZipOutptuStream 损坏 ZIP 文件

为什么以下代码在通过 servlet 输出流输出时会生成损坏的 zip 文件?使用 FileOutputStream 将 ZIP 写入本地磁盘时,输出流似乎没有损坏。

这可能是刷新/关闭流的顺序问题吗?