📜  获取文件最后访问时间的Java程序(1)

📅  最后修改于: 2023-12-03 14:57:15.790000             🧑  作者: Mango

获取文件最后访问时间的Java程序

在进行文件操作时,有时需要知道文件的最后访问时间。Java提供了获取文件最后访问时间的API,下面介绍如何使用Java程序获取文件最后访问时间。

1. 使用java.nio.file.Files类获取文件最后访问时间

Java的java.nio.file.Files类提供了获取文件最后访问时间的方法getLastAccessTime()。下面是使用Files类的示例代码:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.text.SimpleDateFormat;

public class GetLastAccessTime {
    public static void main(String[] args) {
        String filePath = "C:\\example.txt";
        try {
            BasicFileAttributes attributes = Files.readAttributes(Paths.get(filePath), BasicFileAttributes.class);
            FileTime lastAccessTime = attributes.lastAccessTime();
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String formattedTime = dateFormat.format(lastAccessTime.toMillis());
            System.out.println("最后访问时间:" + formattedTime);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

其中,使用Files.readAttributes()方法读取文件的属性,然后调用BasicFileAttributes类的lastAccessTime()方法获取最后访问时间。最后将时间格式化输出。

2. 使用java.io.File类获取文件最后访问时间

Java的java.io.File类也提供了获取文件最后访问时间的API,lastModified()方法可以获取文件的最后修改时间,但同时也包含了最后访问时间。如果要获取最后访问时间,需要使用setLastModified()方法将最后修改时间设置为最后访问时间,然后再获取最后修改时间。下面是使用File类的示例代码:

import java.io.File;
import java.text.SimpleDateFormat;

public class GetLastAccessTime {
    public static void main(String[] args) {
        String filePath = "C:\\example.txt";
        try {
            File file = new File(filePath);
            long lastAccessTime = file.lastModified();
            boolean setLastModifiedSuccess = file.setLastModified(lastAccessTime);
            if (setLastModifiedSuccess) {
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String formattedTime = dateFormat.format(file.lastModified());
                System.out.println("最后访问时间:" + formattedTime);
            } else {
                System.out.println("获取最后访问时间失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

其中,使用File类的lastModified()方法获取最后修改时间,并使用setLastModified()方法将最后修改时间设置为最后访问时间。然后再次使用lastModified()方法获取最后修改时间,并将时间格式化输出。

3. 总结

本文介绍了使用Java程序获取文件最后访问时间的方法,分别使用了java.nio.file.Files类和java.io.File类。使用Files类可以直接获取文件的最后访问时间,而使用File类需要进行一些额外的操作。选择哪种方法取决于具体的需求。