【问题标题】:Viewing images in zip without unzipping在不解压缩的情况下查看 zip 格式的图像
【发布时间】:2013-09-14 21:53:59
【问题描述】:

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

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

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

提前致谢。 :)

【问题讨论】:

    标签: java image zip embedded-resource rar


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 谢谢!到时候我会深入挖掘。我以前没有弄乱过任何 Swing 应用程序,但我也会研究一下。 :D
    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多