0
我有一個zip文件(x.zip),其中有另一個zip文件(y.zip)。我需要在y.zip中讀取一個文件。我如何迭代兩個zip文件來讀取文件?如何使用ZipEntry讀取位於另一個zip文件中的一個zip文件中的數據?
我用來迭代x.zip來讀取y.zip的代碼如下。
在代碼中,「zipX」代表「x.zip」。當遇到「y.zip」時,它滿足代碼中的「if條件」。在這裏,我需要遍歷「zipEntry」並在其中讀取文件。
這是如何實現的?
private void getFileAsBytes(String path, String name) throws IOException {
ZipFile zipX = new ZipFile(path);
Enumeration<? extends ZipEntry> entries = zipX.entries();
while (entries.hasMoreElements())
{
ZipEntry zipEntry = entries.nextElement();
if(zipEntry.getName().contains(name) && zipEntry.getName().endsWith(".zip")) {
InputStream is;
is = zipX.getInputStream(zipEntry);
// Need to iterate through zipEntry here and read data from a file inside it.
break;
}
}
zipX.close();
}
怎麼樣用遞歸方法,直到結束? – Vikram 2014-09-03 22:18:49
在['ZipInputStream'](http://docs.oracle.com/javase/7/docs/api/java/util/zip/ZipInputStream.html)中包裝內部InputStream並將其讀爲普通zip文件「... – MadProgrammer 2014-09-03 22:19:07
@MadProgrammer如果Y.zip裏面有另一個zip文件呢?他需要繼續繼續if/else塊。 – Vikram 2014-09-03 22:24:15