如何使用zip4j库解压缩ServletInputStream

时间:2019-11-15 10:49:09

标签: zip inputstream unzip zipinputstream zip4j

我正在通过邮递员工具在请求中上传一个zip文件(堆转储),并使用request.getInputStream()方法在servlet中检索文件内容。

Postman Image

我有一个包含压缩位的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库来实现这一目标吗?

谢谢!

0 个答案:

没有答案