黑马程序员技术交流社区

标题: [提问]为什么这里会报空指针异常 [打印本页]

作者: 友人A    时间: 2016-3-18 23:16
标题: [提问]为什么这里会报空指针异常
我的需求是:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
然后我的代码是这样的:
package com.Test;
import java.io.File;
import java.util.Scanner;
/*
* * 需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
* */
public class Test4 {
     public static void main(String[] args) {
        // TODO 自动生成的方法存根
        System.out.println("请输入一个路径:");
        File file = Getfile();
        Printfile(file);
    }

    public static void Printfile(File file) {
        // TODO 自动生成的方法存根
        File[] dir = file.listFiles();
        for (File fe : dir) {
            if(fe.isFile() && fe.getName().endsWith(".java")) {
                    System.out.println(fe);
            }else if(fe.isDirectory()){
                Printfile(fe);
            }
        }
    }

    public static File Getfile() {
        // TODO 自动生成的方法存根
        Scanner sc=new Scanner(System.in);
        while(true) {
            File file= new File(sc.nextLine());
            if(! file.exists()) {
                System.out.println("您输入的路径不存在,请重新输入!");
            }else if(file.isFile()) {
                System.out.println("您输入的是文件路径,请重新输入!");
            }else {
                sc.close();
                return file;
            }
        }
    }
}
我在遍历小文件的夹的时候,没有问题,但是当我输入的路径是E盘的时候就会在打印的末尾出现空指针异常,这是怎么回事?

捕获.PNG (258.66 KB, 下载次数: 16)

捕获.PNG

作者: 就是我    时间: 2016-3-19 09:45
你发现一个问题没有? 出现空指针异常的地方 是你正在调试运行的代码这一段




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2