如何获取Java中文件的最后修改日期
时间:2020-01-09 10:35:28 来源:igfitidea点击:
这篇文章显示了如何获取Java文件的最后修改日期。
要获取文件的最后修改日期,有多种选择
- 我们可以使用File.lastModified()方法获取上次修改文件的时间。参见示例。
- 我们可以从Java 7开始使用Files.getLastModifiedTime()方法。参见示例。
- 从Java 7开始,我们还可以使用Files.readAttributes()方法返回BasicFileAttributes对象,该对象包含许多文件属性,例如creationTime,lastAccessTime,lastModifiedTime。这也是在Java中获取文件的最后修改日期的一种方法。参见示例。
使用File.lastModified()方法
如果使用File.lastModified()方法获取文件的上次修改日期,则该方法将返回一个长值,该值表示上次修改文件的时间,以自纪元(1970年1月1日格林威治标准时间00:00:00,毫秒)开始),如果文件不存在或者发生I / O错误,则返回0L。
使用SimpleDateFormat,我们可以创建所需的模式,以将返回的值转换为有意义的日期和时间值。
public class FileChange { public static void main(String[] args) { File file = new File("D:\theitroad\temp.txt"); // Pattern for date & time SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); long fileModified = file.lastModified(); System.out.println("fileModified Value- " + fileModified); System.out.println("Date file was last modified- " + sdf.format(fileModified)); } }
输出:
fileModified Value- 1537430634819 Date file was last modified- 20/09/2018 13:33:54
使用Files.getLastModifiedTime()方法
从Java 7开始可以使用Files.getLastModifiedTime(Path path,LinkOption…options)方法,这是获取Java文件最后修改日期的另一种方法。此处path参数表示文件的路径,options参数表示在文件是符号链接的情况下如何处理符号链接。
public class FileChange { public static void main(String[] args) { Path path = Paths.get("D:\theitroad\temp.txt"); // Pattern for date & time SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); FileTime fileTime; try { fileTime = Files.getLastModifiedTime(path, LinkOption.NOFOLLOW_LINKS); long value = fileTime.toMillis(); System.out.println("fileModified Value- " + value); System.out.println("Date file was last modified- " + sdf.format(value)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
输出:
fileModified Value- 1537430634819 Date file was last modified- 20/09/2018 13:33:54
使用Files.readAttributes()方法获取文件的上次修改日期
Files.readAttributes()方法返回BasicFileAttributes的实例,该实例具有返回各种文件属性(如创建时间,修改日期,上次访问时间等)的方法。
public class FileChange { public static void main(String[] args) { Path path = Paths.get("F:\NetJS\Fromat code.txt"); // Pattern for date & time SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); BasicFileAttributes fileAttributes; try { fileAttributes = Files.readAttributes(path, BasicFileAttributes.class); long value = fileAttributes.lastAccessTime().toMillis(); System.out.println("fileModified Value- " + value); System.out.println("Date file was last modified- " + sdf.format(value)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
输出:
fileModified Value- 1537430623307 Date file was last modified- 20/09/2018 13:33:43