【发布时间】:2014-10-09 08:03:47
【问题描述】:
我正在尝试使用 Apache Commons Compress 读取 7-zip 文件的内容。我对阅读/提取内容不感兴趣,我只想获取所有条目的列表。
我编写了这段代码,但是对于 4MB 的存档,读取整个文件需要 6 秒。
public static void main(String[]args) throws IOException{
File sevenz = new File("testfile.7z");
System.out.println("Reading 7-zip...");
SevenZFile sevenZFile = new SevenZFile(sevenz);
long s = System.currentTimeMillis();
SevenZArchiveEntry entry;
while((entry=sevenZFile.getNextEntry())!=null){
System.out.print(entry.isDirectory()?"Dir":"File");
System.out.print("\t");
System.out.print("*********.***"); //entry.getName();
System.out.print("\t");
System.out.println(entry.getHasCrc()?"CRC":"NO-CRC");
}
System.out.println("------------------------------");
System.out.println("7-zip\t"+(System.currentTimeMillis()-s)+" ms to read.");
}
输出是:
Reading 7-zip...
File *********.*** CRC
File *********.*** CRC
File *********.*** CRC
File *********.*** CRC
File *********.*** CRC
------------------------------
7-zip 6236 ms to read.
文件列表过程是否应该花费这么长时间,还是我做错了什么? 我还尝试删除所有打印件,但读取文件所需的时间是相同的。
【问题讨论】:
标签: java apache-commons-compress