我的需求是:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.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盘的时候就会在打印的末尾出现空指针异常,这是怎么回事?
|
|