在 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,但结果是我的计算机无法识别的文件。