java文件过滤器

利用java.io包里的File类,可以实现对文件的操作。

现在有个需求,要求遍历一个文件夹及其子文件夹里的所有文件,并且过滤出txt格式的文件,该如何做呢?

实现方法很简单,首先是通过递归遍历文件,然后对获得的文件,判断其是不是以"txt"结尾就可以了。

代码如下:

 1     public static void getAllFile(File dir) {

2 File[] fileArr = dir.listFiles();

3 for(File file:fileArr) {

4 if(file.isDirectory())

5 getAllFile(file);

6 if(file.isFile()) {

7 String fileName = file.getName();

8 if(fileName.toLowerCase().endsWith("txt"))

9 System.out.println(file);

10 }

11 }

12 }

其中,getAllFile的参数dir是文件的路径。

运行结果如图

文件过滤器-云海天教程

也可以通过文件过滤器来实现。

文件过滤器-云海天教程

代码如下:

class FileFilterImpl implements FileFilter{

public boolean accept(File pathname) {

//如果pathname 是个文件夹,返回true

if(pathname.isDirectory())

return true;

return pathname.getName().toLowerCase().endsWith("txt");

}

public static void getAllFile(File dir) {

     //listFiles()函数将获得的路径名传给accept方法,

//accept方法判断是文件还是文件夹,如果是文件夹返回true,

    //如果是文件,判断是不是txt格式的,如果是返回true,否则返回false

File[] fileArr = dir.listFiles(new FileFilterImpl()); //文件过滤器

for(File file:fileArr) {

if(file.isDirectory())

getAllFile(file);

if(file.isFile()) {

System.out.println(file);

}

}

}

运行结果如图:

文件过滤器-云海天教程

以上是 java文件过滤器 的全部内容, 来源链接: utcz.com/a/124374.html

回到顶部