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

时间:2015-07-13 19:16:56

标签: java nio2

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

在Java 7+中执行此操作的最优雅/最有效的方法是什么(nio2,所以使用java.nio.files)?

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

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

1 个答案:

答案 0 :(得分:2)

使用.resolveSibling()会更加清晰,例如

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

这不是显着比你的解决方案更好,但它确实有一些优势:

  1. 代码清楚地记录了这两个文件之间的关系 - 它们是兄弟姐妹,共享相同的文件名前缀。
  2. 它利用了Path的功能 - 如果您只是要进行直接字符串连接,您可能根本不使用Path
  3. 它避免使用Paths.get(),这是使用Path的次优方式(因为它采用默认文件系统)。获得Path后,您无需再次致电Paths.get()