在Windows中,磁盘中用反斜杠(又称为右斜杠)\表示路径的分隔。在浏览器中用正斜杠/来表示路径的分隔。
Linux则是统一用/表示路径的分隔的。下面给出Linux中一些常见的路径表示:
- / 表示根目录
- ./ 表示当前目录
- …/ 表示上级目录
那么对于Java而言,路径分隔**推荐使用正斜杠(又称为左斜杠/,不推荐使用反斜杠(反斜杠需要转义:两个反斜杠\\表示一个正杠/)。
关于这个正反斜杠,我们来看一下Java代码实战:
@Test
public void test001(){
// 路径以"/"开头表示Java项目所在的磁盘路径
File file1 = new File("/");
// "\\"等于"/",但是不推荐使用
File file2 = new File("\\");
// 拼接路径推荐使用File.separator,会根据操作系统的不同帮我们自动识别路径分隔符
File file3 = new File(File.separator);
// "./"表示当前项目的相对路径
File file4 = new File("./");
// 绝对路径
File file5 = new File("C:/Users/IQ50/Pictures");
// 绝对路径,同file5,但是不推荐使用
File file6 = new File("C:\\Users\\IQ50\\Pictures");
// 表示当前项目的相对路径下的文件,同"./test.txt"
File file7 = new File("test.txt");
// 表示当前项目的相对路径下的文件,同"./testFolder/test.txt"
File file8 = new File("testFolder/test.txt");
// 表示Java项目所在的磁盘路径下的文件
File file9 = new File("/test.txt");
System.out.println(file1.getAbsolutePath());
System.out.println(file2.getAbsolutePath());
System.out.println(file3.getAbsolutePath());
System.out.println(file4.getAbsolutePath());
System.out.println(file5.getAbsolutePath());
System.out.println(file6.getAbsolutePath());
System.out.println(file7.getAbsolutePath());
System.out.println(file8.getAbsolutePath());
System.out.println(file9.getAbsolutePath());
}
来看下打印输出:
总结一下,在Java中,如果遇到拼接路径的情况,请使用File.separator
。