我用一个简单的 for 循环遇到了这个恼人的问题。这是我的程序的架构
public static void methodA(File a, File b){
//procedure
}
Public static void readFiles(String a){
File folder = new File(a);
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.lenght-1; i++)
{
if (listOfFiles[i].isDirectory())
{
readFile(listOfFiles[i].getPath());
}
else
{
methodA(listOfFiles[i],listOfFiles[i+1])
}
}
}
public static void main(String[] args) throws InterruptedException {
String path = new String("Path to global folder");
readFile(path);
}
问题是,当我进入第 2 版到第 3 版的第一个文件夹时,出现此消息错误(文件数 - 仅文件数 - 等于 5):
线程“主”java.lang.NullPointerException 中的异常
但是,如果我这样做:for (int i = 3; i < listOfFiles.lenght-1; i++)程序可以正常工作,并且其他文件夹中的某些文件也会发生同样的情况。
在每个文件夹中至少有 3 个文件(仅文件)。
会发生什么?,我也尝试进行调试以尝试了解问题,但没有任何成功。