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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我知道怎么解决, 就是不知道为什么会报空指针异常??
<div class="blockcode"><blockquote>package fuxiIO;

import java.io.File;
import java.util.Scanner;

public class Test07_SameName {
        /*
         *  需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名 ** 分析: 从键盘接收一个文件夹路径
         * 1,如果录入的是不存在,给与提示 2,如果录入的是文件路径,给与提示 3,如果是文件夹路径,直接返回
         *
         */


        public static void main(String[] args) {
                File file = getDir();
                getJavaFile(file);
        }

        private static File getDir() {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个文件夹路径:");
                while (true) {
                        String s = sc.nextLine();
                        File dir = new File(s);
                        if (!dir.exists()) {
                                System.out.println("您输入的文件夹不存在,请重新输入!");
                        } else if (dir.isFile()) {
                                System.out.println("您输入的是文件路径,请输入文件夹路径!");
                        } else {
                                return dir;
                        }

                }
        }

        private static void getJavaFile(File file) {
                File[] listfile = file.listFiles();

                        for (File file2 : listfile) {
                                if (file2.isFile() && file2.getName().endsWith(".java")) {
                                        System.out.println(file2);
                                } else if (file2.isDirectory()) {
                                        getJavaFile(file2);
                                }
                        }
        }

}
</blockquote></div><br />

3 个回复

倒序浏览
这个有大神知道么?
回复 使用道具 举报
错误信息呢?
哪一行的异常?
回复 使用道具 举报
本帖最后由 我是你岁哥❤环 于 2016-7-9 16:58 编辑

在进行for循环之前,先进行判断
  1. if(listfile != null){
  2.        for (File file2 : listfile) {
  3.               if (file2.isFile() && file2.getName().endsWith(".java")) {
  4.                        System.out.println(file2);
  5.                } else if (file2.isDirectory()) {
  6.                         getJavaFile(file2);
  7.                }
  8.        }
  9. }
复制代码
出现空指针异常,是因为windows的一些系统文件造成的,加上这个判断,就没有问题了

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马