问题标签 [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.
java - ZipOutputStream : BufferedOutputStream 与 PrintStream
我想使用 ZipOutputStream 写入大块字节首选什么?
...
或者
java - 多线程写入 ZipOutputStream
问题:我需要下载大量文件(文件大小可达 2GB)并将它们以 zip 格式发送给请求资源的客户端。我正在寻找并行化该操作。目前,我必须使用的库OutputStream
(在我的情况下是ZipOutputStream
)作为输入,并使用 ApacheCommons 将下载文件的内容写入该输出流IOUtils
。
这种方法的问题是一切都是按顺序发生的。我必须下载一个文件,然后写入 OutputStream,创建一个新的 zipEntry,关闭该条目,然后继续下一个。我想并行执行下载操作,如果可能的话,我还需要ZipOutputStream
并行写入。
有人遇到过这个问题吗?
我计划更改该库的签名以返回InputStream
下载的资源,以便我可以并行获取这些内容,然后按顺序为每个流创建新的 ZipEntry。这样我至少可以并行下载文件。我创建 ZipOutStream 的方式如下:
有什么想法吗?
java - ZipOutputStream.setLevel(0) 在 Linux 和 Windows 环境中的不同行为
我正在尝试优化一个方法 writeZipResults,它采用 ByteOutputStream 列表并将其转换为单个 zip 文件作为 ZipOutputStream。
方法定义:
}
为了优化上述方法,我添加了 zip.setLevel(0) 即无压缩,这最大限度地减少了方法执行时间,从而在我的本地窗口系统中大大扩展。
但是当我在 linux 环境中使用 zip.setLevel(0) 运行相同的代码时,我没有获得与 Windows 系统下相同的性能。
我的观点是来自 Linux 的应用程序日志(以黄色突出显示)和我的本地 Windows 系统为具有完全相同数据集的相同场景捕获的:
请建议如何在linux环境下优化方法?
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我将阅读和使用存储的对象以用于进一步的目的。
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 ),但我想确定一下。
谢谢!!!
java - Java:Zipinputstream 到 Zipoutputstream 导致“未找到中央目录结尾签名”错误
我尝试将 Zip 从 a 复制Zipinputstream
到 a Zipoutputstream
。
我将 Zip 存储byte[]
在 Oracle 数据库中。我Zipinputstream
用来解压缩 zip(稍后我想编辑 Zip),然后将其放入 aZipoutputstream
中以获取新的byte[]
并使用此数组稍后通过 a 下载文件ServletOutputStream
。当我创建一个新文件时 - 没有Zipinputstream
- 它可以工作。但是当我使用时,Zipinputstream
我得到了错误。
这是我的代码:
android - Android 压缩文件
我创建了一个目录,其中存储了一些图像。现在,要将其压缩为单个 .zip 文件,我使用了以下代码:
当我在指定目录中运行此代码时,会使用指定名称创建一个 .zip 文件,但是当我尝试使用 Android 或 PC 上的任何软件(winzip 等)打开它时,它会显示以下错误消息:这文件已损坏或不是有效的 zip 文件”
任何帮助,将不胜感激。
java - 如何创建多部分 zip 文件并将其读回?
我如何正确地将字节压缩ByteArrayOutputStream
到 a然后使用 a 读取ByteArrayInputStream
?我有以下方法:
当我执行此代码时,底部的断言失败,因为entry.size
is -1
。我不明白为什么提取的实体与压缩的实体不匹配。
java - 邮编贾斯珀报告
我正在尝试压缩多个碧玉报告。我可以压缩一份报告,但不能压缩多份报告。我正在使用 Java 列表添加相同的 Jasperprint 只是为了测试,这是否可以压缩多个报告。
java - JAVA - 使用带有 FileInputStream 的 ZipOutptuStream 损坏 ZIP 文件
为什么以下代码在通过 servlet 输出流输出时会生成损坏的 zip 文件?使用 FileOutputStream 将 ZIP 写入本地磁盘时,输出流似乎没有损坏。
这可能是刷新/关闭流的顺序问题吗?