使用 nio2 测试是否存在具有特定后缀的文件

Test if a file with a specific suffix exists using nio2

给定:一个名为 example.xml 的文件 目的:测试文件 example.xml.sha256 是否存在。

在 Java 7+(nio2,所以使用 java.nio.files)中最 elegant/efficient 的方法是什么?

我有这个,但对我来说有点难看:

Path path = Paths.get("/../example.xml");
if (Files.exists(Paths.get(path.toString() + ".sha256")))) {
   ...
}

使用 .resolveSibling() 会更简洁一些,例如

path.resolveSibling(path.getFileName() + ".sha256");

这并不比您的解决方案显着好,但它确实有一些优点:

  1. 代码清楚地记录了两个文件之间的关系 - 它们是兄弟姐妹,共享相同的文件名前缀。
  2. 它利用了 Path 的功能 - 如果您只是要进行直接字符串连接,您最好根本不使用 Path
  3. 它避免了 Paths.get(),这是使用 Paths 的次优方式(因为它采用默认文件系统)。一旦你有了 Path,你就永远不需要重新调用 Paths.get()