A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我的需求是:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.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

1 个回复

倒序浏览
你发现一个问题没有? 出现空指针异常的地方 是你正在调试运行的代码这一段
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马