写了个Java程序,遍历C盘所有.exe文件,但是递归的时候出现越界操作(nullpointerException)具体程序如下

importjava.io.File;publicclassFilePractise{/***@paramargs*/publicstaticvoidmain(Strin... import java.io.File;

public class FilePractise {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

FilePractiseL fPra =new FilePractiseL();//文件提取类声明
File f = new File("C:\\Windows");

fPra.listExe(f);//.exe_文件提取
fPra.listDir(f);//目录提取

}

}
import java.io.File;
import java.io.FilenameFilter;

public class FilenameFiterE1 implements FilenameFilter{//文件过滤器接口实现,

@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return name.indexOf(".exe")!=-1;//当文件为.exe_时,返回true
}

}
import java.io.File;
import java.io.FilenameFilter;

public class FilenameFilterE2 implements FilenameFilter{//文件过滤器接口实现,

@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return !(name.indexOf(".")!=-1);//单文件为目录时,返回true
}

}
import java.io.File;

public class FilePractiseL {
public FilePractiseL(){}
public void listExe(File f){//显示.exe_文件
FilenameFiterE1 f1 = new FilenameFiterE1();//.exe_文件过滤接口
String[] names = f.list(f1);
System.out.println(names.length);
for(int i = 0;i < names.length;i++){//循环显示.exe_文件路径名
System.out.println(f.getAbsolutePath()+"\\"+names[i]);
}
}

public void listDir(File f){//显示子目录名称
FilenameFilterE2 f2 = new FilenameFilterE2();//目录过滤接口
String[] names1 = f.list(f2);
System.out.println(names1.length);
for(int i = 0;i < names1.length;i++){//循环显示子目录路径名
File dir = new File(f.getAbsoluteFile()+"\\"+names1[i]);
// System.out.println(names1[i]);
listExe(dir);
listDir(dir);//问题出在这两个递归上面,但是我实在不知道哪里出错了

System.out.println(dir.getAbsolutePath());
}
}

}
求高手帮忙解决!
展开
 我来答
百度网友6eed2f8
2010-12-16 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3818万
展开全部
呵呵,原因出在.
String[] names = f.list(f1);
String[] names1 = f.list(f2);
应该先判断names是否为null,否则如果names为null的话
调用names1.length方法就会报错的,空指针异常
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式