Java 在zip中查看图像而无需解压缩

Java 在zip中查看图像而无需解压缩,java,image,zip,embedded-resource,rar,Java,Image,Zip,Embedded Resource,Rar,我正在开发一个Java程序,它允许我查看zip/rar文件中的图像,而无需将其解压缩到硬盘上的文件夹中。我希望能够像在普通的图像查看器上一样翻转它们,如果需要,可以放大/缩小 根据我所了解的,即使它只是一个临时文件夹,也必须将其提取出来,只要程序能够在之后自行删除它,我就可以使用这个临时文件夹。我相信ZipFile是我应该做更多研究的东西?我所看到的大部分内容都是处理文本文档而不是图像文件,因此我不确定如何继续我的研究 我想看看我是否走上了正确的道路,或者是否有什么好的资源/特定的API可以帮助

我正在开发一个Java程序,它允许我查看zip/rar文件中的图像,而无需将其解压缩到硬盘上的文件夹中。我希望能够像在普通的图像查看器上一样翻转它们,如果需要,可以放大/缩小

根据我所了解的,即使它只是一个临时文件夹,也必须将其提取出来,只要程序能够在之后自行删除它,我就可以使用这个临时文件夹。我相信ZipFile是我应该做更多研究的东西?我所看到的大部分内容都是处理文本文档而不是图像文件,因此我不确定如何继续我的研究

我想看看我是否走上了正确的道路,或者是否有什么好的资源/特定的API可以帮助我,因为我已经有好几个月没有做任何编码了(除了轻php和html),或者已经有一年没有做任何java了,我已经有足够长的时间没有做这些了


提前感谢。:)

您使用的是
ZipFile
,我认为您不需要在查看图像之前提取到磁盘

ZipFile
对象将为您提供一个包含
entries()
的内容列表。您可以迭代这个
ZipEntry
对象的集合,以选择要查看的文件,当然,如果需要,还可以将其过滤为已知的扩展名

奇怪的是,为给定条目提供
InputStream
的是
ZipFile
对象,而不是单个
ZipEntry
对象。您可以将此对象读入内存中的
字节[]
,并将其发送给负责显示图像的组件

一个警告是,对于zip文件,为了获得存储在zip中的最后一个文件,基本上必须解压缩整个归档文件,这可能会很耗时。因此,根据使用模式,将文件缓存在磁盘或内存中的LRU缓存上可能是有意义的

您没有提到这是否适用于Swing应用程序,但如果是,这可能有助于显示图像:


谢谢!那我就更深入地研究它。我以前没有处理过任何Swing应用程序,但我也会研究一下D