【发布时间】:2023-10-14 06:37:01
【问题描述】:
我有一个包含许多 zip 条目的 zip 文件 (许多 png 图像)。
我要统计包含单词"idle"的图片数量
zip 条目是这样的:
on001,on002...on0037-idle001,idle002...idle0085
请告诉我如何计算名称中包含单词"idle"的文件数
我知道如何计算.size() 压缩包中的所有文件,但我如何计算特定文件?
【问题讨论】:
我有一个包含许多 zip 条目的 zip 文件 (许多 png 图像)。
我要统计包含单词"idle"的图片数量
zip 条目是这样的:
on001,on002...on0037-idle001,idle002...idle0085
请告诉我如何计算名称中包含单词"idle"的文件数
我知道如何计算.size() 压缩包中的所有文件,但我如何计算特定文件?
【问题讨论】:
遍历.entries() 并检查每个ZipEntrys 名称:
ZipFile zipFile = new ZipFile("???.zip");
int count = 0;
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
if (entry.getName().contains("idle")) count++;
}
【讨论】:
我通过这段代码解决了这个问题,但是它太慢了,韦斯顿的代码要好得多
FileInputStream fis = new FileInputStream("zip file adress");
ZipInputStream zis = new ZipInputStream(fis);
ZipEntry ze = null;
int idlecount;
while ((ze = zis.getNextEntry()) != null){
if (ze.getName().contains("idle")){
idlecount++;
}
}
【讨论】: