我正在测试是否存在使用Java nio包中的新类的文件,但我得到的结果似乎是一个错误:
以下代码:
Path p = Paths.get("");
System.err.println("[" + p.getFileName().toString() + "]");
System.err.println("[" + p.getParent() + "]");
System.err.println(Files.exists(p));
产生输出:
[]
[null]
true
为什么打印成真?这是一个错误还是预期的行为?
答案 0 :(得分:1)
""
是您执行应用的路径。
试试这个:
System.err.println(p.toFile().getAbsolutePath());
然后你会看到你在哪里。
答案 1 :(得分:0)
来自Path
类的javadoc:
"如果Path只包含一个为空的名称元素,则该路径被视为空路径。使用空路径访问文件等同于访问文件系统的默认目录。"
您已经创建了一个空路径,并且exists()
调用正在测试文件系统的"默认目录"存在。确实如此。
您所看到的是"预期的行为"。
请注意"默认目录"可能意味着不同的东西取决于主机平台,但在基于UNIX的系统和Windows上,它意味着"当前目录"对于JVM。