我正在通过邮递员工具在请求中上传一个zip文件(堆转储),并使用request.getInputStream()
方法在servlet中检索文件内容。
我有一个包含压缩位的InputStream,并想使用ZipInputStream解压缩它。我没有看到任何使用Zip4j进行此操作的方法。当前,创建ZipInputStream的唯一方法是从ZipFile创建,而ZipFile需要来自File,而不是InputStream。我正在寻找某种类似于java.util.zip.ZipInputStream的工作方式。
我尝试过java.util.zip.ZipInputStream
,但是getNextEntry()
方法有时返回NULL。在下面找到我的代码,
ZipInputStream zis = new ZipInputStream(request.getInputStream());
ZipEntry ze = zis.getNextEntry();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte buffer[] = new byte[1024];
while(ze!=null) {
int len;
while((len = zis.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
ze = zis.getNextEntry();
}
out.close();
zis.close();
return out.toByteArray();
有什么方法可以使用zip4j库来实现这一目标吗?
谢谢!