Java nio。空路径

时间:2016-11-01 20:52:57

标签: java nio

有谁能告诉我Paths.get("")指向的地方?

这是代码和输出。

public static void main(String[] args) {
    Path path = Paths.get("");
    System.out.printf("`%s`%n", path);
    System.out.printf("`%s`%n", path.normalize());
    System.out.println(Files.exists(path));
    System.out.println(Files.isExecutable(path));
}

``
``
true
true

3 个答案:

答案 0 :(得分:4)

它映射到运行程序的目录。 将其转换为绝对路径来测试自己。 System.out.println(Paths.get("").toAbsolutePath());

答案 1 :(得分:4)

System.out.println(Paths.get("").toAbsolutePath());
  

/用户/安德鲁/工作区/刮

看起来它是当前的工作目录。在我的机器上,Java报告它是可执行的,因为' x'当前用户的目录上的标志为true。

来自javadocs

  

此方法检查文件是否存在,以及此Java虚拟机是否具有执行该文件的适当权限。检查对目录的访问时,语义可能不同。例如,在UNIX系统上,检查执行访问权限检查Java虚拟机是否有权搜索目录以访问文件或子目录。

答案 2 :(得分:0)

正如文档所说,它已链接到现有的文件系统:

  

使用它将暗示对默认FileSystem的假定引用并限制调用代码的实用程序

您可以查看小更新:

public static void main(String[] args) {
        Path path = Paths.get("");

        System.out.printf("`%s`%n", path);
        System.out.printf("`%s`%n", path.normalize());
        System.out.println(Files.exists(path));
        System.out.println(Files.isExecutable(path));

        System.out.println(path.toFile().getAbsolutePath());
    }

最后输出类似于:

  

C:\用户\纳扎尔\项目\ IdeaProjects \测试项目