黑马程序员技术交流社区
标题:
打印出该文件夹下所有的.java文件, 直接输入盘符e:\ 空指针...
[打印本页]
作者:
星空@3
时间:
2016-7-8 18:43
标题:
打印出该文件夹下所有的.java文件, 直接输入盘符e:\ 空指针...
我知道怎么解决, 就是不知道为什么会报空指针异常??
<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 09:17
这个有大神知道么?
作者:
cat73
时间:
2016-7-9 11:20
错误信息呢?
哪一行的异常?
作者:
我是你岁哥❤环
时间:
2016-7-9 16:55
本帖最后由 我是你岁哥❤环 于 2016-7-9 16:58 编辑
在进行for循环之前,先进行判断
if(listfile != null){
for (File file2 : listfile) {
if (file2.isFile() && file2.getName().endsWith(".java")) {
System.out.println(file2);
} else if (file2.isDirectory()) {
getJavaFile(file2);
}
}
}
复制代码
出现空指针异常,是因为windows的一些系统文件造成的,加上这个判断,就没有问题了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2