java_IO_File(2)过滤器应用

需求:1,输出一个目录下的特定类型文件。

   2,输出一个目录下的特定属性文件。

分析:File.list(),以字符串数组返回当前目录下文件。

   File.listlistFiles(),以File返回当前目录下文件。

   接口FilenameFilter,FileFilter。具有过滤器接口的类 可作为参数添加到list(), listFile()中,返回过滤后的对象。

 1 package File;
 2 
 3 import java.io.File;
 4 import Filter.FilterByHidden;
 5 import Filter.FilterByJava;
 6 import Filter.SuffixFilter;
 7 
 8 public class FileList {
 9 
10     public static void main(String[] args) {
11         
12         //listDemo();   //输出D盘下的所有文件、文件夹
13         //listDemo2();    //输出D盘下.java文件
14         //listDemo3();    //输出D盘下的非隐藏文件
15         listDemo4();    //输出D盘下任何类型文件
16     }
17 
18     private static void listDemo4() {
19         File file = new File("D:\\");
20         String names2[]= file.list(new SuffixFilter(".txt"));
21         for(String name:names2)
22             System.out.println(name);
23         
24     }
25 
26     private static void listDemo3() {
27     
28         File file = new File("c:\\");
29         File[] names = file.listFiles(new FilterByHidden());
30         
31         for(File name:names){
32             System.out.println(name);
33         }
34         
35         
36         
37     }
38 
39     public static void listDemo2() {
40         File file = new File("D:\\");
41         String names2[]= file.list(new FilterByJava());
42         for(String name:names2)
43             System.out.println(name);
44         
45     }
46 
47     private static void listDemo() {
48         File file = new File("D:\\");
49         String names[] = file.list();
50         for(String name:names)
51             System.out.println(name);
52         
53     }
54 
55     
56 }
package Filter;

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

public class FilterByJava implements FilenameFilter {

	public boolean accept(File dir, String name) {

		return name.endsWith(".java");
		
	}

}

  

 1 package Filter;
 2 
 3 import java.io.File;
 4 import java.io.FilenameFilter;
 5 
 6 public class SuffixFilter implements FilenameFilter {
 7 
 8     private String suffix;
 9     //重写构造方法,被调用时可直接传入过滤的文件类型。
10     public SuffixFilter(String suffix) {
11         super();
12         this.suffix = suffix;
13     }
14 
15     public boolean accept(File dir, String name) {
16         return !name.endsWith(suffix);
17     }
18 
19 }
 1 package Filter;
 2 
 3 import java.io.File;
 4 import java.io.FileFilter;
 5 import java.io.FilenameFilter;
 6 
 7 public class FilterByHidden implements FileFilter {
 8 
 9 
10     public boolean accept(File pathname) {
11         
12         return pathname.isHidden();
13         
14     }
15 
16 }

 


posted @ 2013-03-28 22:03  wkai212  阅读(243)  评论(0编辑  收藏  举报