我有一个生成输出文件的java应用程序,需要进行压缩。 目前,我在使用脚本
生成文件后将其压缩$ zip <abc.zip> abc
其他选择是让Java代码使用以下类来压缩它。
java.util.zip.ZipEntry;
java.util.zip.ZipOutputStream;
现在,想知道在压缩率和时间方面哪个更好?
Java具有独立于系统的优势,但对我来说没问题。
答案 0 :(得分:3)
Java的ZipOutputStream使用与zip命令一样的zlib作为本机库。所以在性能方面,它们应该是等价的。
答案 1 :(得分:0)
我认为性能会相同,但使用
zip -9 <abc.zip> abc
你可以获得更多压缩,你可以通过在zip命令中提供-r
开关来避免在java中复制目录
答案 2 :(得分:0)
我认为通过使用ZipOutputStream
包装写入文件的输出流,您可能会获得一些优势。
使用该脚本,您可以通过直接编写压缩流来避免执行以下操作:
而如果您使用ZipOutputStream
zip
脚本集成在一起并不令人头疼。 zip
可用,这里我已经在Linux上获得了它,但在AIX上没有它)与往常一样,解决方案是对其进行原型设计并进行测试,然后确定哪种性能/压缩更好/可接受。
答案 3 :(得分:-1)
我认为Java当然速度较慢,因为它在JVM上运行,而不是直接运行在操作系统上。 如果我是你,我将继续使用该脚本,只要我有时间自己执行它。 如果你自动化它会更好,如果你没有时间每次都执行它们,。