1 package zl_file; 2 3 import java.io.File; 4 import java.io.FilenameFilter; 5 6 /* 7 需求: 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称 8 分析: 9 两种方式: 10 A:先获取所有的,然后遍历的时候,依次判断,如果满足条件就输出。 11 a:封装h判断目录 12 b:获取该目录下所有文件或者文件夹的File数组 13 c:遍历该File数组,得到每一个File对象,然后判断 14 d:是否是文件 15 是:继续判断是否以.jpg结尾 16 是:就输出该文件名称 17 否:不搭理它 18 否:不搭理它 19 20 21 B: 获取的时候就已经是满足条件的了,然后输出即可。 22 要想实现这个效果,就必须学习一个接口:文件名称过滤器 23 public String[] list(FilenameFilter filter) 24 public File[] listFiles(FilenameFilter filter) 25 */ 26 public class FileTest1 { 27 28 public static void main(String[] args) { 29 30 //封装h判断目录 31 File file = new File("H:\"); 32 33 //获取该目录下所有文件或者文件夹的File数组 34 File[] file1 = file.listFiles(); 35 36 //遍历该File数组,得到每一个File对象,然后判断 37 for(File f : file1){ 38 //是否是文件 39 if(f.isFile()){ 40 //是否以.jpg结尾 41 if(f.getName().endsWith(".jpg")){ 42 System.out.println(f.getName()); 43 //艾斯.jpg 44 } 45 } 46 } 47 } 48 }
1 package zl_file; 2 3 import java.io.File; 4 import java.io.FilenameFilter; 5 /* 6 获取的时候就已经是满足条件的了,然后输出即可。 7 要想实现这个效果,就必须学习一个接口:文件名称过滤器 8 1 public String[] list(FilenameFilter filter) 9 获取该目录下的所有的文件夹或者文件的名称的集合 10 2 public File[] listFiles(FilenameFilter filter) 11 new FilenameFilter()是个文件名称过滤器接口,需要的是这个接口的实现类的对象,这里使用匿名方法 12 */ 13 public class FileTest2 { 14 15 public static void main(String[] args) { 16 //封装h判断目录 17 File file = new File("h:\"); 18 19 //获取该目录下的所有的文件夹或者文件的名称的集合:public String[] list(FilenameFilter filter) 20 String[] str = file.list(new FilenameFilter() { 21 22 //new FilenameFilter()是个文件名称过滤器接口,需要的是这个接口的实现类的对象,这里使用匿名方法 23 public boolean accept(File dir, String name) { 24 /* 25 //根据一个父File对象和一个子文件/目录得到File对象 26 File file1 = new File(dir,name); 27 28 //是否是文件 29 boolean flag1 = file1.isFile(); 30 31 //是否以.jpg结尾 32 boolean flag2 = name.endsWith(".jpg"); 33 return flag2 && flag1; 34 */ 35 //上面的可以总结为下面这段: 36 return new File(dir,name).isFile() && name.endsWith(".jpg"); 37 } 38 }); 39 //遍历 40 for(String st : str){ 41 System.out.println(st); 42 } 43 //艾斯.jpg 44 } 45 }