1 package test;
2
3 /*
4 * 需求: 判断指定目录下的所有[图片]的扩展名, 并打印出文件名.
5 *
6 * */
7 import java.io.File;
8 import java.io.FilenameFilter;
9
10 class PictureFilter implements FilenameFilter
11 {
12 public boolean isGif(String file)
13 {
14 return file.toLowerCase().endsWith(".gif") ? true : false;
15 }
16 public boolean isJpg(String file)
17 {
18 return file.toLowerCase().endsWith(".jpg") ? true : false;
19 }
20 public boolean isPng(String file)
21 {
22 return file.toLowerCase().endsWith(".png") ? true : false;
23 }
24 public boolean isBmp(String file)
25 {
26 return file.toLowerCase().endsWith(".bmp") ? true : false;
27 }
28 public boolean accept(File dir, String fname)
29 {
30 return (isJpg(fname) || isBmp(fname) || isPng(fname) || isGif(fname));
31 }
32 }
33 public class Test10
34 {
35 public static void main(String[] args)
36 {
37 File dir = new File("D:/test/test_2");
38 String[] pictures = dir.list(new PictureFilter());
39 System.out.println("size=" + pictures.length);
40 for (int i = 0; i < pictures.length; i++)
41 {
42 String picfile = pictures[i];
43 System.out.println("picfile=" + picfile);
44 }
45 }
46 }
1 package test;
2 /*
3 * 匿名内部类实现
4 * 注意filter()的自变量必须是final。这一点是匿名内部类要求的,使其能使用来自本身作用域以外的一个对象。
5 * */
6 import java.io.File;
7 import java.io.FilenameFilter;
8
9 public class Test11
10 {
11 public static FilenameFilter filter(final String random)
12 {
13 return new FilenameFilter()
14 {
15 public boolean isGif(String file)
16 {
17 return file.toLowerCase().endsWith(".gif") ? true : false;
18 }
19 public boolean isJpg(String file)
20 {
21 return file.toLowerCase().endsWith(".jpg") ? true : false;
22 }
23 public boolean isPng(String file)
24 {
25 return file.toLowerCase().endsWith(".png") ? true : false;
26 }
27 public boolean isBmp(String file)
28 {
29 return file.toLowerCase().endsWith(".bmp") ? true : false;
30 }
31 public boolean accept(File dir, String fname)
32 {
33 return (isJpg(fname) || isBmp(fname) || isPng(fname) || isGif(fname));
34 }
35 };
36 }
37 public static void main(String[] args)
38 {
39 System.out.println("test11");
40 File dir = new File("D:/test/test_2");
41 String[] pictures = dir.list(filter("random"));
42 System.out.println("size=" + pictures.length);
43 for (int i = 0; i < pictures.length; i++)
44 {
45 String picfile = pictures[i];
46 System.out.println("picfile=" + picfile);
47 }
48 }
49 }
1 package test;
2
3 import java.io.File;
4 import java.io.FilenameFilter;
5 /*
6 * main函数匿名内部类
7 * */
8 public class Test12
9 {
10 public static void main(String[] args)
11 {
12 File dir = new File("D:/test/test_2");
13 String[] pictures = dir.list(new FilenameFilter()
14 {
15 public boolean isGif(String file)
16 {
17 return file.toLowerCase().endsWith(".gif") ? true : false;
18 }
19 public boolean isJpg(String file)
20 {
21 return file.toLowerCase().endsWith(".jpg") ? true : false;
22 }
23 public boolean isPng(String file)
24 {
25 return file.toLowerCase().endsWith(".png") ? true : false;
26 }
27 public boolean isBmp(String file)
28 {
29 return file.toLowerCase().endsWith(".bmp") ? true : false;
30 }
31 public boolean accept(File dir, String fname)
32 {
33 return (isJpg(fname) || isBmp(fname) || isPng(fname) || isGif(fname));
34 }
35 });
36 System.out.println("test12");
37 System.out.println("size=" + pictures.length);
38 for (int i = 0; i < pictures.length; i++)
39 {
40 String picfile = pictures[i];
41 System.out.println("picfile=" + picfile);
42 }
43 }
44 }