学科分类
目录
Java基础

File类的常用方法

File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如:“D:\file\a.txt”,也可以是相对于当前目录而言的相对路径,如:“src\Hello.java”。File类内部封装的路径可以指向一个文件,也可以指向一个目录,在File类中提供了针对这些文件或目录的一些常规操作。

接下来介绍一下File类常用的构造方法,如表1所示。

表1 File类常用的构造方法

方法声明 功能描述
File(String pathname) 通过指定的一个字符串类型的文件路径来创建一个新的File对象
File(String parent,String child) 根据指定的一个字符串类型的父路径和一个字符串类型的子路径(包括文件名称)创建一个File对象
File(File parent,String child) 根据指定的File类的父路径和字符串类型的子路径(包括文件名称)创建一个File对象

表1中列出了File类的三个构造方法。通常来讲,如果程序只处理一个目录或文件,并且知道该目录或文件的路径,使用第一个构造方法较方便。如果程序处理的是一个公共目录中的若干子目录或文件,那么使用第二个或者第三个构造方法会更方便。

File类中提供了一系列方法,用于操作其内部封装的路径指向的文件或者目录,例如判断文件/目录是否存在、创建和删除文件/目录等。接下来介绍一下File类中的常用方法,如表2所示。

表2 File类的常用方法

方法声明 功能描述
boolean exists() 判断File对象对应的文件或目录是否存在,若存在则返回ture,否则返回false
boolean delete() 删除File对象对应的文件或目录,若成功删除则返回true,否则返回false
boolean createNewFile() 当File对象对应的文件不存在时,该方法将新建一个此File对象所指定的新文件,若创建成功则返回true,否则返回false
String getName() 返回File对象表示的文件或文件夹的名称
String getPath() 返回File对象对应的路径
String getAbsolutePath() 返回File对象对应的绝对路径(在Unix/Linux等系统上,如果路径是以正斜线/开始,则这个路径是绝对路径;在Windows等系统上,如果路径是从盘符开始,则这个路径是绝对路径)
String getParent() 返回File对象对应目录的父目录(即返回的目录不包含最后一级子目录)
boolean canRead() 判断File对象对应的文件或目录是否可读,若可读则返回true,反之返回false
boolean canWrite() 判断File对象对应的文件或目录是否可写,若可写则返回true,反之返回false
boolean isFile() 判断File对象对应的是否是文件(不是目录),若是文件则返回true,反之返回false
boolean isDirectory() 判断File对象对应的是否是目录(不是文件),若是目录则返回true,反之返回false
boolean isAbsolute() 判断File对象对应的文件或目录是否是绝对路径
long lastModified() 返回1970年1月1日0时0分0秒到文件最后修改时间的毫秒值
long length() 返回文件内容的长度
String[] list() 列出指定目录的全部内容,只是列出名称
String[] list(FilenameFilter filter) 接收一个FilenameFilter参数,通过该参数可以只列出符合条件的文件
File[] listFiles() 返回一个包含了File对象所有子文件和子目录的File数组

表2中,列出了File类的一系列常用方法,此表仅仅通过文字对File类的方法进行介绍,对于初学者来说很难弄清它们之间的区别,接下来,通过一个案例来演示File类的常用方法。

首先,在项目当前目录下创建一个文件“example.txt”,并在文件中输入内容“File”,然后创建一个使用File常用方法的类,来查看文件的相应信息,如文件1所示。

文件1 Example12.java

 1    import java.io.*;
 2    public class Example12 {
 3        public static void main(String[] args) {
 4             // 创建File文件对象
 5            File file = new File("example.txt");   
 6            System.out.println("文件名称:" + file.getName());
 7            System.out.println("文件的相对路径:" + file.getPath());
 8            System.out.println("文件的绝对路径:" + file.getAbsolutePath());
 9              System.out.println("文件的父路径:" + file.getParent());
 10            System.out.println(file.canRead() ? "文件可读" : "文件不可读");
 11            System.out.println(file.canWrite() ? "文件可写": "文件不可写");
 12            System.out.println(file.isFile() ?  "是一个文件" :"不是一个文件");
 13            System.out.println(file.isDirectory()? "是一个目录":"不是一个目录");
 14            System.out.println(file.isAbsolute() ? "是绝对路径": "不是绝对路径");
 15            System.out.println("最后修改时间为:" + file.lastModified());
 16            System.out.println("文件大小为:" + file.length() + " bytes");
 17            System.out.println("是否成功删除文件"+file.delete());
 18        }
 19    }

运行结果如图1所示。

图1 运行结果

在文件1中,调用File类的一系列方法获取到了文件的名称、相对路径、绝对路径、文件是否可读等信息,并通过delete()方法将文件删除。

点击此处
隐藏目录