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 }