java.io中File类的list和listFiles方法实践

java.io中类File有两个方法list和listFiles

list()方法:

1 public void test() {
2         File file = new File("E:/syl");
3         // String[] list()
4         // 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
5         String[] list = file.list();
6         for (String f : list) {
7             System.out.println(f);
8         }
9     }

运行结果:

listFiles()方法:

 1 public void test() {
 2         File file = new File("E:/syl");
 3         // File[] listFiles()
 4         // 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
 5         File[] list = file.listFiles();
 6         for (File f : list) {
 7             System.out.println(f);
 8             System.out.println("文件名:" + f.getName());
 9             System.out.println("是否是一个目录:" + f.isDirectory());
10             // long length()
11             // 返回由此抽象路径名表示的文件的长度。
12             System.out.println("文件的长度" + f.length() + "字节");
13             System.out.println("-----------------");
14         }
15     }

运行结果(部分):

想要在目录中“返回满足指定过滤器的文件和目录”会用到list(FilenameFilter filter)和listFiles(FilenameFilter filter)方法。

首先得实现java.io 中的FilenameFilter接口,可以创建一个外部类或内部类来实现此接口。

 1 class HtmlFileFilter implements FilenameFilter {// 创建外部类或内部类实现此接口
 2         @Override
 3         // boolean accept测试指定文件是否应该包含在某一文件列表中。
 4         public boolean accept(File dir, String name) {
 5             // TODO Auto-generated method stub
 6             if (name.endsWith(".html"))
 7                 return true;
 8             return false;
 9         }
10     }

实现FilenameFilter接口的HtmlFileFilter类实例可用于过滤器文件名(.html)。

1 public void test() {
2         File file = new File("E:/syl");
3         String[] list = file.list(new HtmlFileFilter());
4         System.out.println("路径E:/syl中是HTML类型的有:");
5         for (String f : list) {
6             System.out.println(f);
7         }
8     }

运行结果:

其中在实现FilenameFilter接口时,也可以使用匿名内部类的方式实现:

首先传送大神的博客:java中的匿名内部类总结

 1 import java.io.File;
 2 import java.io.FilenameFilter;
 3 
 4 public class TestFile {
 5 
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         File file = new File("E:/syl");
 9         // String[] list()
10         // 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
11         String[] list = file.list(new FilenameFilter() {
12             // 匿名内部类
13             @Override
14             public boolean accept(File dir, String name) {
15                 // TODO Auto-generated method stub
16                 if (name.endsWith(".html"))
17                     return true;
18                 return false;
19             }
20 
21         });
22         System.out.println("路径E:/syl中是HTML类型的有:");
23         for (String f : list) {
24             System.out.println(f);
25         }
26     }
27 
28 }

运行结果同上,这样代码的编写会简化许多。

 

转载于:https://www.cnblogs.com/DaCang/p/5363350.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值