1

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

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

我正在寻找我是否走在正确的轨道上,或者是否有任何好的资源/特定的 api 我可以寻求帮助,因为我几个月没有进行任何编码(除了轻型 php 和 html)或任何java 在大约一年的时间里,我已经把它搁置了足够长的时间。

提前致谢。:)

4

1 回答 1

2

你在正确的轨道上ZipFile,我认为你在查看图像之前不需要解压到磁盘。

一个ZipFile对象会给你一个它的内容列表entries()。您可以迭代此ZipEntry对象集合以选择要查看的文件,当然,如果您愿意,可以将其过滤到已知的扩展名。

奇怪的是,它是ZipFile对象而不是单个ZipEntry对象,它会给你一个InputStream给定的条目。您可以将此对象读入byte[]内存中的 a 并将其发送到负责显示图像的组件。

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

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

http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html

于 2013-09-11T02:31:15.233 回答