0

在 Java 中,我接受来自网页的输入流,该网页恰好是一个 zip 文件。我想在将文件保存到磁盘之前解压缩文件。但是,我的 zipInputStream.getNextEntry 抛出以下错误:

"java.util.zip.ZipException: only DEFLATED entries can have EXT descriptor"

这是我正在使用的代码。第一部分工作正常:

URL url = new URL ("http://"+ipAddress+"/axis-cgi/record/download.cgi?diskid=SD_DISK&recordingid="+recordingID);
byte[] encodedBytes = Base64.encodeBase64((username+":"+password).getBytes());
String encoding = new String (encodedBytes);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoInput (true);
connection.setRequestProperty  ("Authorization", "Basic " + encoding);
connection.connect();

InputStream inputStream = connection.getInputStream();

这是我的代码中引发错误的部分(在下面的“while”语句中)。请注意, unpack() 写入文件。

ZipInputStream zipStream = new ZipInputStream(inputStream);
ZipEntry zipEntry = null;
while ((zipEntry = zipStream.getNextEntry()) != null) {
    File destinationFile = new File("C:/Users/user1/Documents/folder1/test", zipEntry.getName());
    unpackEntry(destinationFile, zipStream);
}
zipStream.close();

说只有放气的条目可以有 EXT 的错误是什么?这是否意味着我收到的文件实际上不是一个 zip 文件(即它是一个普通文件夹)?我尝试使用 File 直接保存 InputStream,但结果是我的计算机无法识别的文件。

4

1 回答 1

-2

根据 cs 的建议,我审查了这个线程。如何在 Java 中解压缩加密的 ODT OpenDocument。总而言之,ZipInputStream 在解压缩 zip 文件中未压缩的文件时遇到问题。

于 2013-08-03T20:30:40.577 回答