如何获取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