gpt4 book ai didi

java - Java 中的 BasicFileAttributes 与 BasicFileAttributeView

转载 作者:行者123 更新时间:2023-12-04 18:10:01 25 4
gpt4 key购买 nike

这两个接口(interface)有什么区别? BasicFileAttributes对比BasicFileAttributeView

我知道它们用于从文件中检索基本元数据,但实际上它们之间有什么不同?

编辑:我之前的意思是在下面的示例中,这两个接口(interface)可以互换使用。有什么区别吗?除了为了首先使用 View 访问属性之外,您必须调用 .readAttributes() 方法吗?

BasicFileAttributeView bs = Files.getFileAttributeView(path, BasicFileAttributeView.class);
BasicFileAttributes bfa = Files.readAttributes(path, BasicFileAttributes.class);

最佳答案

接口(interface)只不过是它们描述的签名。所以这两个接口(interface)之间的区别在于,它们需要实现其他签名的方法。

如果您有一个 BasicFileAttributeView 实例,您可以使用 readAttributes() 获取 BasicFileAttributes。如果您没有 BasicFileAttributeView (BFAV) 实例,您可以使用 Files.getFileAttributeView 获取它。 .保证您可以通过 BFAV,即使它可能不适用于 FileAttributeView 的每个子类。

例子:

BasicFileAttributeView  bfav    = Files.getFileAttributeView(
FileSystems.getDefault().getPath("/dev/null"),
BasicFileAttributeView.class
);
BasicFileAttributes bfa = bfav.readAttributes();
System.out.println(bfa.lastAccessTime());
  1. 我们得到了默认的文件系统,以便我们可以在下一步中使用它。
  2. 我们使用文件系统得到一个路径,以便我们可以在下一步中使用它
  3. 我们使用 Path 获取 BasicFileAttributeView(代表读取 BasicFileAttribute 的能力),以便...
  4. 我们使用 BasicFileAttributeView 获取 BasicFileAttribute,以便...
  5. 我们得到 lastAccessTime(一个 FileTime),...
  6. 我们使用 FileTime::toString 打印它

关于java - Java 中的 BasicFileAttributes 与 BasicFileAttributeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16374278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com