📅  最后修改于: 2023-12-03 15:31:36.353000             🧑  作者: Mango
在Java中,当需要获取某个文件或目录的路径时,我们常常会使用两个方法:getPath()
和getAbsolutePath()
。 两个方法都属于java.io.File
类的方法,可以返回文件或目录的路径,但它们有几个区别。
getPath()
方法返回的是相对路径,可以自动把文件名和目录名转化为字符串,但不保证这个文件或目录是否存在,也不保证返回的路径是绝对路径。
例如,假设我们有一个文件名为test.txt
在C:\Java\
目录下,可以这样获取它的路径:
File file = new File("C:\\Java\\test.txt");
String path = file.getPath();
System.out.println(path);
// 输出: C:\Java\test.txt
如果该文件不存在,这个方法返回的路径也是该文件的相对路径。
getAbsolutePath()
方法返回的是文件或目录的绝对路径,对于相对路径的文件,此方法会将其转化为绝对路径。 如果当前工作目录不是该文件所在的目录,它会自动加上当前工作目录的前缀。
例如,如果我们要获取同样在C:\Java\
目录下的test.txt
文件的绝对路径,可以这样:
File file = new File("C:\\Java\\test.txt");
String path = file.getAbsolutePath();
System.out.println(path);
// 输出: C:\Java\test.txt
此外,如果文件不存在,此方法也会返回该文件的绝对路径,但是路径结尾会带上文件名。
综上所述,getPath()
方法返回的是相对路径,不保证存在,而getAbsolutePath()
方法返回的是绝对路径,会把相对路径转化为绝对路径。 在使用这两个方法时,需要考虑应用场景,选择适合的方法。