java 解压慢_Java的解压缩实用程序性能不佳

我注意到与使用WinZip等本机工具相比,

Java中的解压缩工具非常慢.

是否有可用于Java的第三方库更高效?

开源是首选.

编辑

这是使用Java内置解决方案vs 7zip的速度比较.

我在原始解决方案中添加了缓冲输入/输出流(感谢Jim,这确实产生了很大的不同).

Zip文件大小:800K

Java解决方案:2.7秒

7Zip解决方案:204毫秒

以下是使用内置Java解压缩的修改代码:

/** Unpacks the give zip file using the built in Java facilities for unzip. */

@SuppressWarnings("unchecked")

public final static void unpack(File zipFile, File rootDir) throws IOException

{

ZipFile zip = new ZipFile(zipFile);

Enumeration entries = (Enumeration) zip.entries();

while(entries.hasMoreElements()) {

ZipEntry entry = entries.nextElement();

java.io.File f = new java.io.File(rootDir, entry.getName());

if (entry.isDirectory()) { // if its a directory, create it

continue;

}

if (!f.exists()) {

f.getParentFile().mkdirs();

f.createNewFile();

}

BufferedInputStream bis = new BufferedInputStream(zip.getInputStream(entry)); // get the input stream

BufferedOutputStream bos = new BufferedOutputStream(new java.io.FileOutputStream(f));

while (bis.available() > 0) { // write contents of 'is' to 'fos'

bos.write(bis.read());

}

bos.close();

bis.close();

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值