Java File

110 阅读3分钟

1. File 概述

File 对象就表示一个路径,可以是文件的路径,也可以是文件夹的路径

这个路径可以是存在的,也可以是不存在的。

2. File 的构造方法

方法名称说明
public File(String pathname)根据路径字符串,创建对象
public File(String parent, String child)根据父级路径字符串和子级路径字符串,创建对象
public File(File parent, String child)根据父级路径File和子级路径字符串,创建对象

可以直接通过字符串创建 File,也可以在已知 File 的基础上创建子 File。

代码示例:

  1. 根据路径字符串,创建对象(字符串 -> File
    // 文件路径名
    String pathname1 = "D:\a.txt";
    File file1 = new File(pathname1); 
    
    // 文件路径名
    String pathname2 = "D:\a\b.txt";
    File file2 = new File(pathname2); 
    
  2. 根据父级路径字符串和子级路径字符串,创建对象(字符串 + 字符串 -> File
    // 通过父路径和子路径字符串
    String parent = "d:\a";
    String child = "b.txt";
    File file3 = new File(parent, child);
    // windows:\  linux: /
    File file3 = new File(parent + "\" + child);
    
  3. 根据父级路径File和子级路径字符串,创建对象(File + 字符串 -> File
    // 通过父级File对象和子路径字符串
    File parentDir = new File("d:\a");
    String child = "b.txt";
    File file4 = new File(parentDir, child);
    

3. File 的成员方法

3.1 创建、删除

方法名称说明
public boolean createNewFile()创建一个新的空的文件(已存在返回false)如果父级路径不存在,方法会有异常。创建的是一个文件,若路径中不含后缀名,则创建一个没有后缀的文件。
public boolean mkdir()创建单级文件夹(make directory)路径是唯一的,若路径存在,返回false。
public boolean mkdirs()创建多级文件夹。(可以创建单级文件夹,一般用这个
public boolean delete()删除文件、空文件夹(不走回收站,删了就没了)

3.2 判断

方法名称说明
public boolean exists()判断此路径名表示的Flie是否存在
public boolean isDirectory()判断此路径名表示的File是否是文件夹
public boolean isFile()判断此路径名表示的File是否是文件

3.3 获取

方法名称说明
public String getAbsolutePath()返回文件的绝对路径
public String getPath()返回定义文件时使用的路径
public String getName()返回文件的名称,带后缀。文件夹不带后缀。
public long length()返回文件的大小。只能获取文件的大小,单位字节。若获取文件夹大小,计算每一个文件大小。
public long lastModified()返回文件的最后修改时间(时间毫秒值)

3.4 获取并遍历

方法名称说明
public File[] listFiles()获取当前路径下所有内容
public String[] list()返回一个String数组,只能获取名字

listFiles():

  1. 当调用者File表示的路径不存在时,返回null。
  2. 当调用者File表示的路径是文件时,返回null。
  3. 当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组。
  4. 当调用者File表示的路径是一个有内容的文件夹时时,将里面所有文件和文件夹的路径放在File数组中返回。
  5. 当调用者File表示的路径是一个有隐藏文件的文件夹时时,将里面所有文件和文件夹的路径放在File数组中返回,包括隐藏文件。
  6. 当调用者File表示的路径是需要权限才能访问的文件夹时时,返回null。