使用文件有什么区别。分隔符和正常的/在Java路径字符串?
与双反斜杠相比,平台独立性似乎不是原因,因为这两个版本都可以在Windows和Unix下运行。
public class SlashTest {
@Test
public void slash() throws Exception {
File file = new File("src/trials/SlashTest.java");
assertThat(file.exists(), is(true));
}
@Test
public void separator() throws Exception {
File file = new File("src" + File.separator + "trials" + File.separator + "SlashTest.java");
assertThat(file.exists(), is(true));
}
}
换句话说,如果/可以在Unix和Windows上工作,为什么要使用File.separator?
“Java SE8 for Programmers”声称Java可以应付这两种情况。(第480页,最后一段)。
这个例子声称:
c:\Program Files\Java\jdk1.6.0_11\demo/jfc
会很好地解析。注意最后一个(unix风格的)分隔符。
这很俗气,而且可能容易出错,但这就是他们(Deitel和Deitel)所宣称的。
我认为人们的困惑,而不是Java,是足够的理由不使用这个(mis?)特性。
迟到了。我使用的是Windows 10, JDK 1.8和Eclipse MARS 1。
我发现
.getResourceAsStream .getClassLoader getClass()()(“路径/ /资源”);
工作和
.getResourceAsStream .getClassLoader getClass()()(“路径”+ File.separator + " " + File.separator +“资源”);
不工作
.getResourceAsStream .getClassLoader getClass()()(“路径\ \资源”);
不管用。后两个是等价的。所以…我有很好的理由不使用File.separator。
“Java SE8 for Programmers”声称Java可以应付这两种情况。(第480页,最后一段)。
这个例子声称:
c:\Program Files\Java\jdk1.6.0_11\demo/jfc
会很好地解析。注意最后一个(unix风格的)分隔符。
这很俗气,而且可能容易出错,但这就是他们(Deitel和Deitel)所宣称的。
我认为人们的困惑,而不是Java,是足够的理由不使用这个(mis?)特性。