我想读取zip文件中文件的第一行。 现在我使用while循环这样做sample stackoverflow quesion link
但我知道该zip文件的确切位置。而zip文件非常大(可以超过500mb)。
所以我想有一种方法可以在不使用while。
循环遍历所有文件的情况下读取该文件答案 0 :(得分:0)
使用ZipFile
代替ZipInputStream
。这将读取zip文件的中央目录(请参阅Wikipedia article),而不是整个文件。然后,您可以使用entries()
或getEntry(java.lang.String)
和getInputStream(java.util.zip.ZipEntry)
获取条目的输入流:
String entryName = // put name of your entry here
File file = // put your zip file here
ZipFile zipFile = null;
try {
zipFile = ZipFile(file);
ZipEntry zipEntry = zipFile.getEntry(entryName);
InputStream is = null;
try {
is = zipFile.getInputStream(zipEntry);
// read stream here e.g. using BufferedReader
} catch (IOException ex) {
// TODO: handle exception or delete catch block
} finally {
if (is != null) {
try {
is.close();
} catch (IOException ex) {
}
}
}
} finally {
if (zipFile != null) {
zipFile.close();
}
}