这个问题在这里已有答案:
通过等价,我指的是逻辑等价,而不是字符串比较。例如。如果我做Files.newBufferedReader(Paths.get("file.txt", System.getProperty("user.home"))
和Files.newBufferedReader(Paths.get("~").resolve(Paths.get("file.txt")))
,我会在Windows和其他系统上获得相同的文件吗?
当然不。 Tilde角色在shell中有特殊意义。它指向HOME
变量。在Java中,~
就像任何其他文件名一样。此外,在Windows中,您不能使用~
作为主目录。