2013-09-11 29 views
1

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

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

我期待看看我是否在正确的轨道上,或者是否有任何良好的资源/具体的API我可以考虑帮助,因为我没有在几个月内做任何编码(除了轻型php和HTML)或任何Java大约一年,我已经在后台上足够长的时间。

在此先感谢。 :)

回答

2

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

A ZipFile对象会给你一个其内容列表entries()。您可以遍历这个ZipEntry对象的集合,以呈现要查看哪个文件的选项,并且如果您愿意,可以将其过滤为已知扩展。

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

一个需要注意的事情是,为了得到压缩文件中存储的最后一个文件,它将基本上需要解压缩整个压缩文件,这可能很耗时。因此,根据使用模式,缓存磁盘上的文件或内存中的LRU缓存可能是有意义的。

你没有提到,如果这是一个Swing应用程序,但如果是,这可能对显示图像是有帮助的:

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

+0

谢谢!那么我会深入研究它。我之前没有和任何Swing应用混淆,但我也会研究它。 :d – Rath

相关问题