java 文件过滤器为什么报空指针异常?求详解!!!

 我来答
紫薇参星
科技发烧友

2016-11-14 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3620万
展开全部

accept函数你用的不对,它只需要你指定过滤条件就可以了,不需要递归调用.

如果你需要其子目录下的.png文件,可以另外写一个递归调用.

完整的文件过滤的Java程序如下

import java.io.File;
import java.io.FilenameFilter;
class MyFilenameFilter1 implements FilenameFilter{
 @Override
 public boolean accept(File dir, String name) {
  if(name.toLowerCase().endsWith(".png"))return true;
  return false;
 }
}
public class FileDemo6_1 {
 static void findFile(File dir){
  if(dir.isDirectory()){
   File[] fs1=dir.listFiles(new MyFilenameFilter1());
   for(File file2:fs1){
    System.out.println(file2);
   }
   File[] fs=dir.listFiles();
   for(File file:fs){
    findFile(file); 
   }
  }
 }
 public static void main(String[] args) {
  findFile(new File("C:/tmp/6"));
 }
}
运行结果
C:\tmp\6\female.png
C:\tmp\6\male.png
C:\tmp\6\image\female.png
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式