2013-09-11 41 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

相關問題