
package zl_file; import java.io.File;
import java.io.FilenameFilter; /*
需求: 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
分析:
两种方式:
10 A:先获取所有的,然后遍历的时候,依次判断,如果满足条件就输出。
a:封装h判断目录
b:获取该目录下所有文件或者文件夹的File数组
c:遍历该File数组,得到每一个File对象,然后判断
d:是否是文件
是:继续判断是否以.jpg结尾
是:就输出该文件名称
否:不搭理它
否:不搭理它 B: 获取的时候就已经是满足条件的了,然后输出即可。
要想实现这个效果,就必须学习一个接口:文件名称过滤器
public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)
*/
public class FileTest1 { public static void main(String[] args) { //封装h判断目录
File file = new File("H:\\"); //获取该目录下所有文件或者文件夹的File数组
File[] file1 = file.listFiles(); //遍历该File数组,得到每一个File对象,然后判断
for(File f : file1){
//是否是文件
if(f.isFile()){
//是否以.jpg结尾
if(f.getName().endsWith(".jpg")){
System.out.println(f.getName());
//艾斯.jpg
}
}
}
}
}
package zl_file; import java.io.File;
import java.io.FilenameFilter;
/*
获取的时候就已经是满足条件的了,然后输出即可。
要想实现这个效果,就必须学习一个接口:文件名称过滤器
1 public String[] list(FilenameFilter filter)
获取该目录下的所有的文件夹或者文件的名称的集合
2 public File[] listFiles(FilenameFilter filter)
new FilenameFilter()是个文件名称过滤器接口,需要的是这个接口的实现类的对象,这里使用匿名方法
*/
public class FileTest2 { public static void main(String[] args) {
//封装h判断目录
File file = new File("h:\\"); //获取该目录下的所有的文件夹或者文件的名称的集合:public String[] list(FilenameFilter filter)
String[] str = file.list(new FilenameFilter() { //new FilenameFilter()是个文件名称过滤器接口,需要的是这个接口的实现类的对象,这里使用匿名方法
public boolean accept(File dir, String name) {
/*
//根据一个父File对象和一个子文件/目录得到File对象
File file1 = new File(dir,name); //是否是文件
boolean flag1 = file1.isFile(); //是否以.jpg结尾
boolean flag2 = name.endsWith(".jpg");
return flag2 && flag1;
*/
//上面的可以总结为下面这段:
return new File(dir,name).isFile() && name.endsWith(".jpg");
}
});
//遍历
for(String st : str){
System.out.println(st);
}
//艾斯.jpg
}
}