下面是在java中构建目录路径的行。
在这里,File.separator
是" \"在Windows和" /"在Unix上。
String path = System.getProperty("user.home") + File.separator + "workspace" +
File.separator + "JavaCode";
如果我对路径进行硬编码,它应该如下所示:
File path = new File("C:\\users\\david\\workspace\\JavaCode");
我的问题:
为什么我们在第二种情况下提到\\
?
答案 0 :(得分:2)
这是因为Java中定义了字符串文字。反斜杠用于某些转义序列(例如"\n"
,"\r"
等),因此字面反斜杠也是转义序列("\\"
)。
回到你的代码,不要打扰,改为使用java.nio.file:
final Path path = Paths.get(System.getProperty("user.home"), "workspace",
"JavaCode");
适用于运行JVM(7+)的每个操作系统。
它会在您的计算机上正确返回Path
"C:\\users\\david\\workspace\\JavaCode"
,就像我在"/home/fge/workspace/JavaCode"
上返回{{1}}一样。
答案 1 :(得分:2)
因为,对于字符串,\
是转义字符:它表示以特殊方式解释以下字符(这就是为什么\n
不是n
)。在你的情况下,你希望{em>而不是特别解释\
本身,因此你需要其中的两个:第一个说“对待下一个字符特殊”,下一个得到专门用处理\
。