File中的 getPath()和 getAbsolutePath(),getCanonicalPath() 有什么区别?
我自己验证是打印出的路径都一样,谁能举例或者能说出区别 ? 非常感谢
D:\STS\workspace-sts\invoicing\target\test-classes\cn\hyx\iofiletest\test1.hyx.csv
D:\STS\workspace-sts\invoicing\target\test-classes\cn\hyx\iofiletest\test1.hyx.csv
D:\STS\workspace-sts\invoicing\target\test-classes\cn\hyx\iofiletest\test1.hyx.csv
getAbsolutePath()和 getAbsolutePath() 这两个一看就是相同,不解释
getCanonicalPath() 返回此抽象路径名的规范路径名字符串。规范路径名是绝对路径名,并且是惟一的。规范路径名的准确定义与系统有关。如有必要,此方法首先将路径名转换为绝对路径名,这与调用 getAbsolutePath() 方法的效果一样,然后用与系统相关的方式将它映射到其惟一路径名。每个表示现存文件或目录的路径名都有一个惟一的规范形式。每个表示不存在文件或目录的路径名也有一个惟一的规范形式。不存在文件或目录路径名的规范形式可能不同于创建文件或目录之后同一路径名的规范形式。同样,现存文件或目录路径名的规范形式可能不同于删除文件或目录之后同一路径名的规范形式。
这些API上都有解释,看楼主眼神不大好就贴出来吧
F3查看File类的源码看看,源码的注释解释了各个方法的含意,看下源码。
getPath:大概是返回你新建的时候传入的
getAbsolutePath:返回从操作系统根目录向下的path
getCanonicalPath:返回相对路径,如果不是使用相对路径创建,大概也只会返回相对路径