1(了解)、File类中有两个重要的静态成员变量 —— File.pathSeparator 和 File.separator,它们分别是什么?

pathSeparator = 路径分隔符,在windows是分号;在Linux是冒号:
 separator = 文件名称分隔符,在windows是反斜杠\  在Linux是正斜杠/

2、绝对路径和相对路径的区别是什么?

绝对路径是以盘符为首;
相对路径是简写的路径,相对的是当前项目路径的根目录;

3(了解)、File类的构造方法有哪些?

File f = new File(绝对路径);
 File f = new File(相对路径);
 File f = new File(父路径,子路径); // 这里的父路径可以是String类,也可以是File类

4(了解)、File类的重要的成员方法有哪些?

f.getAbsolutePath(); // 得到绝对路径
f.getpath(); // 得到绝对路径或者相对路径,f 给的是啥就是啥
f.getName(); // 得到路径的结尾部分 --> 一个文件或者文件夹
f.length(); // 得到文件的大小且以子接为单位 或 0字节(文件不存在或者没有大小概念的文件夹)


f.exists(); // 构造方法的路径是否存在
f.isDirectory(); // 是否是文件夹结尾,路径不存在返回 false,
f.isFile(); // 是否是文件结尾,路径不存在返回 false;用以上两个方法可以加个 if (路径存在)前提


f.createNewFile(); // 创建新文件,文件不存在,返回 true;只能创建文件,不能创建文件夹;路径必须存在否则抛出异常
File f = new File(文件名);f.mkdir(); // 文件夹不存在,创建单级文件夹,返回true;
File f = new File(文件名);f.mkdirs(); // 文件夹不存在,创建多级或单级文件夹,返回true;
File f = new File(文件名);f.delete();  // 用时查

5(了解)、如何用File类遍历文件夹目录?

f.list(); // 存储在一个String类的数组中
f.listFiles(); // 存储在一个File类的数组中

6、如何使用文件过滤器?

File[] files = f.listFiles(FileFilter filter); // 用来过滤文件,需要重写FileFilter接口的
acecpt(File pathname)方法
File[] files = f.listFiles(FilenameFilter filter) // 用来过滤文件名称,需要重写FilenameFilter接口的
accept(File dir, String name)方法 —— dir 是目录,name是文件名
实现类中的 accept(...)方法就是重新定义过滤的规则 —— 返回 true 的文件将被过滤出来保存在数组中
public class FileFilterImpl implements FileFilter {
    @Override
    public boolean accept(File pathname) {
        String s = pathname.getName();
        if(s.endsWith(".pdf")) return true;
        else return false;
    }
}
public class FilenameFilterImpl implements FilenameFilter {
    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(".pdf");
    }
}
public class FileFilterTest {
    public static void main(String[] args) {
        File dir = new File("D:\\HTH");
        File[] arr = dir.listFiles(new FileFilterImpl());
        for (File f : arr) {
            System.out.println(f);
        }

        File dir2 = new File("D:\\开题报告");
        File[] arr2 = dir2.listFiles(new FilenameFilterImpl());
        for (File f : arr2) {
            System.out.println(f);
        }
    }
}

重点:
调用File对象的listFiles(…)重载方法;
重写接口的accept(…)方法