首页 > 编程笔记 > Java笔记 阅读:17

Java File类用法详解(附带实例)

File 是 java.io 包中唯一代表磁盘文件本身的类。

File 类定义了一些与平台无关的方法来操作文件,这意味着,程序开发人员可以通过调用 File 类中的方法,实现创建、删除、重命名文件等操作。

File 类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件读写权限等。数据流可以将数据写入文件中,文件也是数据流最常用的数据媒体。

Java文件的创建与删除

可以使用 File 类创建一个文件对象。通常使用以下 3 种构造方法来创建文件对象。

1) File(String pathname)

该构造方法通过将给定的路径名字符串转换为抽象路径名来创建一个新 File 实例。语法如下:
new File(String pathname)
其中,pathname 代表路径名称(包含文件名)。例如:
File file = new File("d:/1.txt");

2) File(String parent,String child)

该构造方法根据定义的父路径和子路径字符串(包含文件名)创建一个新的 File 对象。语法如下:
new File(String pathname,String child)

3) File(File f, String child)

该构造方法根据 f 抽象路径名和 child 路径名字符串创建一个新 File 实例。语法如下:
new File(File f,String child)

对于 Microsoft Windows 平台,包含盘符的路径名前缀由驱动器号和一个“:”组成。如果路径名是绝对路径名,还可能后跟“\\”。

当使用 File 类创建一个文件对象后,例如:
File file = new File("word.txt");
如果当前目录中不存在名称为 word 的文件,那么 File 类对象可通过调用 createNewFile() 方法创建一个名称为 word.txt 的文件;如果存在 word.txt 文件,则可以通过文件对象的 delete() 方法删除该文件。

【例 1】在 D 盘中创建文本文件。在项目中创建 FileTest 类,在主方法中判断 D 盘的根目录中是否存在 word.txt 文件:如果该文件存在,则删除它;如果该文件不存在,则创建它。
import java.io.File;

public class FileTest {
    public static void main(String[] args) {
        File file = new File("D:\\word.txt"); // 创建文件对象
        if (file.exists()) { // 如果该文件存在
            file.delete(); // 将文件删除
            System.out.println("文件已删除");
        } else { // 如果文件不存在
            try {
                file.createNewFile(); // 创建该文件
                System.out.println("文件已创建");
            } catch (Exception e) {
                e.printStackTrace(); // try 语句块捕捉可能出现的异常
            }
        }
    }
}
如果 D 盘下没有 word.txt 文件,则会创建该文件并输出如下内容:

文件已创建


如果 D 盘下有 word.txt 文件,则会删除该文件并输出如下内容:

文件已删除

Java获取文件信息

File 类提供了很多方法以获取文件本身的信息,其中常用的方法如下表所示:

表:File 类的常用方法
方法 返回值 说明 方法 返回值 说明
getName() String 获取文件的名称 getParent() String 获取文件的父路径
canRead() boolean 判断文件是否为可读的 isFile() boolean 判断抽象路径名表示的文件是否为一个标准文件
canWrite() boolean 判断文件是否可被写入 isDirectory() boolean 判断文件是否为一个目录
exists() boolean 判断文件是否存在 isHidden() boolean 判断文件是否为隐藏文件
length() long 获取文件的长度(以字节为单位) lastModified() long 获取文件的最后修改时间
getAbsolutePath() String 获取文件的绝对路径      

下面通过实例介绍如何使用上述的某些方法来获取文件信息。

【实例】读取文本文件的名称、长度和隐藏属性。获取 D 盘根目录下 word.txt 文件的文件名、文件长度,并判断该文件是否为隐藏文件。
import java.io.File;

public class FileTest {
    public static void main(String[] args) {
        File file = new File("D:\\word.txt"); // 创建文件对象
        if (file.exists()) { // 如果文件存在
            String name = file.getName(); // 获取文件名称
            long length = file.length(); // 获取文件长度
            boolean hidden = file.isHidden(); // 判断文件是否为隐藏文件
            System.out.println("文件名称:" + name); // 输出信息
            System.out.println("文件长度是:" + length);
            System.out.println("该文件是隐藏文件吗?" + hidden);
        } else {
            System.out.println("该文件不存在"); // 如果文件不存在
        }
    }
}
当 D 盘根目录下有一个非隐藏的 word.txt 文件时,运行结果如下:

文件名称:word.txt
文件长度是:0
该文件是隐藏文件吗?false

相关文章