gpt4 book ai didi

java - 使用 Java ZipFile 类解压缩 ZIP 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:59 25 4
gpt4 key购买 nike

我在使用 Java 解压缩 ZIP 文件时遇到问题。方法如下。

文件解压缩后文件结构是正确的,这意味着 ZIP 文件中的目录没有问题,但文件输出的长度为零。

我检查了 ZIP 文件,看压缩是否正确,那里都是正确的。

如果有人看到我遗漏的东西,请...

public static void unzip ( File zipfile, File directory ) throws IOException {
ZipFile zip = new ZipFile ( zipfile );
Enumeration<? extends ZipEntry> entries = zip.entries ();

while ( entries.hasMoreElements () ) {
ZipEntry entry = entries.nextElement ();
File file = new File ( directory, entry.getName () );

if ( entry.isDirectory () ) {
file.mkdirs ();
}
else {
file.getParentFile ().mkdirs ();

ZipInputStream in = new ZipInputStream ( zip.getInputStream ( entry ) );
OutputStream out = new FileOutputStream ( file );
byte[] buffer = new byte[4096];
int readed = 0;

while ( ( readed = in.read ( buffer ) ) > 0 ) {
out.write ( buffer, 0, readed );
out.flush ();
}

out.close ();
in.close ();
}
}

zip.close ();
}

更多...显然 getInputStream ( entry ) 方法返回零字节,不知 Prop 体原因。

最佳答案

ZipFile已经解压缩条目的数据,也不需要使用 ZipInputStream

代替:

ZipInputStream in = new ZipInputStream ( zip.getInputStream ( entry ) );

使用:

InputStream in = zip.getInputStream ( entry );

ZipInputStream 也可用于解压缩 ZIP 文件。您获得零长度流的原因是因为使用 ZipInputStream 您需要调用 getNextEntry() 来读取 ZIP 中的第一个文件。

关于java - 使用 Java ZipFile 类解压缩 ZIP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com