如何从 ZipEntry 创建输入流

2022-09-01 03:02:28

我有一个包装ZipEntrys的类,但我正在努力了解如何编写一个从任何一个ZipEntry返回输入流的方法。我设法编写了一些可以为ZipFile返回输入流数组的东西,但我需要一种方法来从一个ZipEntry获取输入流。


答案 1

怎么样?

ZipFile zipFile = new ZipFile("file.zip");
ZipEntry zipEntry = zipFile.getEntry("fileName.txt");       
InputStream inputStream = zipFile.getInputStream(zipEntry);

答案 2

您是否没有 ZipEntry 来源的 ZipFile 实例?如果你这样做,你可以使用ZipFile.getInputStream(ZipEntry)。

https://docs.oracle.com/javase/8/docs/api/java/util/zip/ZipFile.html

PS.只是快速浏览了一下代码,ZipEntry不是zip文件中基础数据的包装器。据我所知,它只是条目的“占位符”(即压缩的文件属性而不是数据)。实际的流是通过 ZipFile 类中的 JNI 调用创建的。这意味着我不相信你能以实际的方式做你想做的事情。


推荐