Java遍历目录,空指针异常

代码如下,按道理不会空指针呀??

public class Test8 {
    public static void main(String[] args) {
        // 创建File对象
        File dir = new File("D:\\");
        if (dir.exists()) {
            if (dir.isDirectory()) {
                // 调用打印目录的方法
                printFile(dir);
            }else {
                System.out.println("文件:" + dir.getAbsolutePath());
            }
        }else {
            System.out.println("文件/目录不存在!");
        }
    }

    private static void printFile(File dir) {
        // 获取子文件和目录
        File[] files = dir.listFiles(f -> (f.getName().endsWith(".java") || f.isDirectory()));
        // 遍历目录
        assert files != null;
        for (File file : files) {
            // 判断是否为文件夹
            if (file.isDirectory()) {
                printFile(file);
            } else {
                System.out.println("文件:" + file.getAbsolutePath());
            }
        }
    }
}

img

输出这两句话 会看到在空指针之前给你提示什么文件夹 并且files是null,因为这种隐藏系统文件夹 是不能这么操作

img

发生空指针异常,请使用try catch