System.getProperty("user.home") 是否等同于 Paths.get("~").absolutePath?
Is System.getProperty("user.home") equivalent to Paths.get("~").absolutePath?
我所说的等价是指逻辑等价,而不是字符串比较。
例如。如果我做 Files.newBufferedReader(Paths.get("file.txt", System.getProperty("user.home"))
和 Files.newBufferedReader(Paths.get("~").resolve(Paths.get("file.txt")))
,我会在 Windows 和其他系统上得到相同的文件吗?
当然没有。波浪字符在 shell 中具有特殊含义。它指向 HOME
变量。在 Java 中,~
与任何其他文件名一样。此外,在 Windows 中,您不能使用 ~
作为主目录。
我所说的等价是指逻辑等价,而不是字符串比较。
例如。如果我做 Files.newBufferedReader(Paths.get("file.txt", System.getProperty("user.home"))
和 Files.newBufferedReader(Paths.get("~").resolve(Paths.get("file.txt")))
,我会在 Windows 和其他系统上得到相同的文件吗?
当然没有。波浪字符在 shell 中具有特殊含义。它指向 HOME
变量。在 Java 中,~
与任何其他文件名一样。此外,在 Windows 中,您不能使用 ~
作为主目录。