编辑:鉴于评论,我应该澄清一下。这绝对取决于上下文。你想做什么?如果您尝试以“本机”操作系统格式创建文件路径,我将使用选项 5,使用File
:
File f = new File("some");
f = new File(f, "path");
f = new File(f, "file.ext");
或者更好的是,将此逻辑放入一个方法中:
public static File newFile(String root, String... parts) {
// TODO: Check that nothing's null (root, parts, each element of parts)
File ret = new File(root);
for (String part : parts) {
ret = new File(ret, part);
}
return ret;
}
然后你可以调用它:
File f = SomeUtilityClass.newFile("some", "path", "file.ext");
(这可能存在于最近的 JRE 中,但如果是这样,我不知道在哪里。)
如果您只需要适用于FileInputStream
等的东西,那么我可能只是对正斜杠进行硬编码,原因有两个:
- 它们比反斜杠更容易阅读
- 他们也可以在其他操作系统上工作
无论哪种方式,我可能仍然会创建一个File
,因为它为该值提供了更清晰的含义。Java 中的大多数 IO API 在File
适当的情况下接受 - 并且它使围绕它的所有代码都清楚这是一个文件路径。所以你可以使用:
File file = new FIle("some/path/file.ext");
...这仍然可以在 Windows 上运行。然后,您可以使用File.getCanonicalFile
来获得规范表示,如果您愿意,它将具有反斜杠而不是正斜杠。