【发布时间】:2013-02-21 02:33:50
【问题描述】:
我正在用 java 解压一个 ZIP 文件:
ZipFile zipFile = new ZipFile(theZipFile);
Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
while(zipEntries.hasMoreElements()){
ZipEntry entry = zipEntries.nextElement(); /// <---Nullpointer exception happens here
}
代码执行超过while(zipEntries.hasMoreElements()),但未能提取 ZipEntry。
奇怪的是hasMoreElements返回true,但是尝试取出元素时出现空指针。
异常来自 JDK lib 的 ZipFile 类,我在调试器中看不到局部变量,那么如何找出 Zip 文件的问题?
编辑: 堆栈跟踪:
java.lang.NullPointerException
at java.util.zip.ZipFile.getZipEntry(ZipFile.java:529)
at java.util.zip.ZipFile.access$900(ZipFile.java:56)
at java.util.zip.ZipFile$1.nextElement(ZipFile.java:511)
at java.util.zip.ZipFile$1.nextElement(ZipFile.java:481)
【问题讨论】:
-
请发布堆栈跟踪。另外,在您处理文件时是否有可能修改文件?
-
如果你附加了一个调试器,你检查过 zipEntries 的值吗?检查 zipEntries 上的元素怎么样?
-
@TedHopp 堆栈跟踪已添加。不,文件在解压过程中没有被修改。
-
这是整个堆栈跟踪吗?那里没有你的代码。
-
@TedHopp 从我的帖子
ZipEntry entry = zipEntries.nextElement()的这一行开始
标签: java nullpointerexception zipfile