File
1.File对象表示路径,可以是文件、也可以是文件夹。这个路径可以是存在的,也可以是不存在的。
2.路径分为绝对路径和相对路径,绝对路径是带盘符的,相对路径是不带盘符的,默认到当前的项目下去找,也就是说写相对路径一定要从当前模块开始写起。
3.构造方法:
方法名 | 说明 |
public File(String pathname) | 根据文件路径创建文件对象 |
public File(String parent,String child) | 根据父路径名字符串和子路径名字符串创建文件对象 |
public File(File parent,String child) | 根据父路径对应文件对象和子路径名字符串创建文件对象 |
2.常见的判断、获取成员方法:
方法名 | 说明 |
public boolean isDirectory() | 判断此路径名表示的File是否为文件夹 |
public boolean isFile() | 判断此路径名表示的File是否为文件 |
public boolean exists() | 判断此路径名表示的File是否存在 |
public long length() | 返回文件的大小(字节数量) |
public String getAbsolutePath | 返回文件的绝对路径 |
public String getPath() | 返回定义文件时使用的路径 |
public String getName() | 返回最后一层文件的名称,带后缀 |
public long lastModified() | 返回文件的最后修改时间(时间毫秒值) |
- length方法只能返回文件的大小(字节数量),如果需要获取M或者G,可以除以1024。length方法无法直接获取文件夹的大小,除非把该文件夹里面所有的文件大小都累加到一起
- getName方法如果在File对象创建时记录的是文件的名字,那么返回的就是带后缀的文件的名字(比如a.txt);如果记录的是文件夹的名字,那么返回的就是最后一层的文件夹
3.常见的创建、删除成员方法:
方法名 | 说明 |
public boolean createNewFile() | 创建一个新的空的文件 |
public boolean mkdir() | 创建单级文件夹 |
public boolean mkdirs() | 创建多级文件夹 |
public boolean delete() | 删除文件、空文件夹(只能删除文件和空文件夹,而且删除不走回收站) |
- createNewFile说明:
1)如果当前路径表示的文件是不存在的,则创建成功,方法返回true;
2)如果当前路径表示的文件是存在的,则创建失败,方法返回false;
3)如果父级路径是不存在的(找不到),那么方法会有异常IOException;
4)创建的一定是文件,如果路径中不包含后缀名,则会创建一个没有后缀的文件。
- mkdir,make Directory创建文件夹(目录):
1)Windows当中路径是唯一的,如果当前路径已经存在,则创建失败,返回false;
2)mkdir方法只能创建单级文件夹,无法创建多级文件夹。
- mkdirs,可以创建多级文件夹,也可以创建单级文件夹,创建单级文件夹时底层就是使用mkdir,以后一般使用mkdirs
4.获取并遍历的成员方法:
方法名 | 说明 |
public static File[] listRoots() | 列出可用的文件系统根 |
public String[] list() | 获取当前该路径下所有内容(获取的只是文件名或者文件夹名) |
public String[] list(FilenameFilter filter) | 利用文件名过滤器获取当前该路径下所有内容 |
public File[] listFiles() | 获取当前该路径下所有内容 |
public File[] listFiles(FileFilter filter) | 利用文件名过滤器获取当前该路径下所有内容 |
public File[] listFiles(FilenameFilter filter) | 利用文件名过滤器获取当前该路径下所有内容 |
重点掌握加粗的listFile方法:
- 当调用者File表示的路径不存在时,返回null
- 当调用者File表示的路径是文件时,返回null
- 当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
- 当调用者File表示的路径时一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,如果当前文件夹包含隐藏文件,那么隐藏文件也会放到数组中返回
- 当调用者File表示的路径是需要权限才能访问的文件夹时,返回null,因此listFile返回的数组最好判空
5.查找内容时的一般步骤:
- 进入文件夹
- 遍历数组
- 判断