查找文件
1.public string[] list();
2.public File[] listFile();
返回一个File数组。
public class SearchFile {
public static void main(String[] args) {
File file = new File("D:\\JavaProject\\BaseJava\\src");//文件搜索的范围
show1(file);
}
private static void show1(File f) {
File[] files = f.listFiles();
for (File file : files) {
if(file.isDirectory()){//判断是否是目录,如果是,就调用show1()方法
show1(file);
}else{
if(file.getName().toLowerCase().endsWith(".jpg")){//判断是否是“.jpg”结尾的文件
System.out.println(file);
}
}
}
}
}
文件过滤器
File[] listFile (FileFilter filter)
抽象方法:boolean accept(File pathName);
参数是使用 listFile()方法遍历得到的每一个文件对象。
1.实现类做法
public class TestFileFilterImpl implements FileFilter {
public class Application {
public static void main(String[] args) {
File f = new File("D:\\JavaProject\\BaseJava\\src");
show1(f);
}
private static void show1(File f) {
File[] fs = f.listFiles(new TestFileFilterImpl());
for (File file : fs) {
if(file.isDirectory()){
show1(file);
}
else{
System.out.println(file);
}
}
}
}
2.内部类
public class InnnerClass {
public static void main(String[] args) {
File file = new File("D:\\JavaProject\\BaseJava\\src");
show1(file);
}
private static void show1(File f) {
//用匿名内部类实现
File[] fs = f.listFiles(new FileFilter() {
3.lambda表达式
File[] fs = f.listFiles(p ->p.isDirectory() ||p.getName().toLowerCase().endsWith("jpg"));
for (File file : fs) {
if(file.isDirectory()){
show1(file);
}
else{
System.out.println(file);
}
}
ListFile方法:
1.ListFile会对构造方法中传递的目录进行遍历,获取目录中文件和目录并封装为File对象
2.ListFile会调用参数传递的过滤器中方法accept()方法