📅  最后修改于: 2023-12-03 14:57:15.790000             🧑  作者: Mango
在进行文件操作时,有时需要知道文件的最后访问时间。Java提供了获取文件最后访问时间的API,下面介绍如何使用Java程序获取文件最后访问时间。
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()方法获取最后访问时间。最后将时间格式化输出。
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()方法获取最后修改时间,并将时间格式化输出。
本文介绍了使用Java程序获取文件最后访问时间的方法,分别使用了java.nio.file.Files类和java.io.File类。使用Files类可以直接获取文件的最后访问时间,而使用File类需要进行一些额外的操作。选择哪种方法取决于具体的需求。