Java 判断文件是否被更改

在开发中,有时候我们需要判断一个文件是否被更改过。比如我们需要监控一个配置文件,如果配置文件被更改过,我们就需要重新加载配置。在 Java 中,我们可以通过比较文件的最后修改时间来判断文件是否被更改。下面我们来了解一下如何实现这个功能。

1. 获取文件的最后修改时间

我们可以使用 Java 的 File 类来获取文件的最后修改时间,代码如下:

import java.io.File;
import java.util.Date;

public class FileCheck {
    public static void main(String[] args) {
        File file = new File("test.txt");
        long lastModified = file.lastModified();
        Date lastModifiedDate = new Date(lastModified);
        System.out.println("File last modified time: " + lastModifiedDate);
    }
}

上面的代码会输出文件 "test.txt" 的最后修改时间。

2. 判断文件是否被更改

我们可以定时获取文件的最后修改时间,然后和之前保存的最后修改时间进行比较,从而判断文件是否被更改。代码如下:

import java.io.File;
import java.util.Date;

public class FileCheck {
    private static long lastModified;

    public static void main(String[] args) {
        File file = new File("test.txt");
        lastModified = file.lastModified();

        // 定时检查文件是否被更改
        while (true) {
            long currentModified = file.lastModified();
            if (currentModified != lastModified) {
                System.out.println("File has been changed!");
                lastModified = currentModified;
            }
            try {
                Thread.sleep(1000); // 每隔1秒检查一次
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

上面的代码会定时检查文件是否被更改,并在文件被更改时输出提示信息。在实际开发中,你可以根据需要进行相应的处理。

状态图

stateDiagram
    [*] --> FileCheck
    FileCheck --> FileCheck: Check file last modified time
    FileCheck --> FileCheck: Compare current modified time with saved time
    FileCheck --> [*]: File has been changed

饼状图

pie
    title File Change Status
    "Changed" : 25
    "Not Changed" : 75

通过上面的代码示例,我们可以实现对文件是否被更改的判断。这对于需要动态监控文件变化的应用场景非常有用。希望本文能帮助到你对 Java 文件操作的理解和应用。