シンプルなサイクルでこの厄介な問題が発生しました。これは私のプログラムのスキーマです
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.length-1; i++)プログラムは問題なく動作し、他のフォルダー内のいくつかのファイルでも同じことが起こります。
すべてのフォルダーには、少なくとも 3 つのファイル (ファイルのみ) があります。
何が起こっているのでしょうか?問題を理解するためにデバッグを試みましたが、成功しませんでした。