1、 File
文件和目录路径名的抽象表示形式。
一个File类对象就代表了一个文件或文件夹。
1.1 File类的作用
用来操作硬盘上的文件或文件夹
绝对路径:一般是以盘符开始的,比如:C:/Java/aaa.png。特点:在系统中具有唯一性。
相对路径:相对于某个位置而言,比如:java/bbb.png。特点:在系统中不具有唯一性
在java中,默认的相对位置是当前项目的根目录
1.2 File 类常用构造方法
public File(String pathname) //根据文件名创建文件
public File(String parent,String child) //根据父路径字符串和子路径字符串创建文件对象
public File(File parent,String child) // 从父抽象路径名和子路径名字符串创建新的 File实例。
1.3 路径分隔符、名称分隔符
1.3.1 路径分隔符
public static final String pathSeparator //与系统相关的路径分隔符字符
不同的操作系统有不同的路径分隔符:
Mac和Linux是 :
Windows是 ;
1.3.2 名称分隔符
public static final String separator //与系统相关的名称分隔符字符
Mac和Linux是 /
Windows是 \
JDK 1.5后,Windows用\来表示路径分隔符都可以
1.4跟获取相关方法
public String getAbsolutePath() 获得绝对路径
public String getPath() 获得创建文件对象的指定的文件路径名字符串
public String getName() 获取文件名
public long length() 获取文件的大小,单位为字节。如果关联路径的文件不存在,返回为零。只能获得文件的大小,不能获取文件夹的值。
获取文件夹的的返回值就是一个垃圾值。
public File getParentFile() 获得父路径文件对象
1.5跟判断相关方法
public boolean exists() 判断文件是否存在
public boolean isDirectory() 判断文件是否是目录
public boolean isFile() 判断文件是否是普通文件
1.6跟创建和删除相关方法
public boolean createNewFile() //创建文件,创建成功返回true,如果创建成功,返回true。如果文件存在,则什么也不发生,返回false
public boolean mkdir() //创建单级文件夹。创建成功返回true,创建失败返回false。如果文件夹存在,则什么也不发生,返回false。只能用在文件夹
public boolean delete() //删除文件和文件夹,如果是文件夹,只能删除空文件夹
public boolean mkdirs() //创建多级文件夹. 创建成功返回true,创建失败返回false。如果文件夹存在,则什么也不发生,返回false。只能用在文件夹
1.7遍历目录相关
public String[] list() 返回一个字符串数组,表示该File目录中的所有子文件或目录
public File[] listFiles() 获取文件夹下的所有文件(子文件夹和普通文件),返回文件对象数组
2. 递归
2.1什么是递归?方法自身调用方法自身。
例子:递归求阶乘
- 阶乘:所有小于及等于该数的正整数的积。
- n的阶乘:n! = n * (n-1) * (n-2) * ... * 3 * 2 * 1
递归分类:
直接递归:方法A调用方法A
间接递归:方法A调用方法B,方法B调用方法C,方法C调用方法A
2.2递归的注意事项:
递归必须要有出口:结束递归的条件
3. Filter文件过滤器
FileFilter是一个接口,只要是实现了该接口的实现类对象就是一个文件过滤器。
3. 1 File类与文件过滤器相关的方法
public File[] listFiles(FileFilter filter)
accept方法的调用时机:
每当获取到文件夹下的每一个文件或子文件夹时,都会将该文件或文件夹封装成File对象,然后将该File 对象作为参数调用文件过滤器的access方法。
Access方法返回值的作用;
返回false,代表传递过来的文件需要过滤掉
返回true,代表接受文件
4. 补充知识点
Scanner类的next方法和nexLine方法的不同点比较:
a)next/nextInt/nextDouble
扫描结束的标记是回车、tab键、空格
在扫描到第一个有效字符之前会自动过滤掉结束标记符:回车、tab键、空格
不会过滤掉扫描结束的回车
b)nextLine
扫描结束标记标记是回车,会过滤扫描结束的回车符