Java文件路径可以是抽象的,绝对的或规范的。
Java文件路径
java.io.File有三种确定文件路径的方法,我们将在本教程中探讨学习它们。
getPath() – 此文件路径方法将抽象路径名作为String返回。如果pathname用于创建File对象,则它只返回pathname参数。如果URI用作参数,则它将删除协议并返回文件名。
getAbsolutePath() – 此文件路径方法返回文件的绝对路径。如果使用绝对路径名创建File,则只返回路径名。如果使用相对路径创建文件对象,则以系统相关的方式解析绝对路径名。在UNIX系统上,通过将相对路径名解析为当前用户目录,使其成为绝对路径名。在Microsoft Windows系统上,通过将路径名解析为路径名所指定的驱动器的当前目录(如果有),使相对路径名成为绝对路径名; 如果没有,则针对当前用户目录解析。
getCanonicalPath() – 此路径方法返回绝对和唯一的规范路径名。如果需要,此方法首先将此路径名转换为绝对形式,就像调用getAbsolutePath()方法一样,然后以系统相关的方式将其映射到其唯一形式。这通常涉及从路径名中删除冗余名称,例如:.和..,解析符号链接(在UNIX平台上),以及将驱动器号转换为标准情况(在Microsoft Windows平台上)。
Java文件路径示例
下面通过使用简单的程序来了解java中文件路径的不同情况。
package com.journaldev.files; import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; public class JavaFilePath { public static void main(String[] args) throws IOException, URISyntaxException { File file = new File("D:/users/maxsu/test.txt"); printPaths(file); // relative path file = new File("test.xsd"); printPaths(file); // complex relative paths file = new File("D:/users/maxsu/../pankaj/test.txt"); printPaths(file); // URI paths file = new File(new URI("file:///D:/users/maxsu/test.txt")); printPaths(file); } private static void printPaths(File file) throws IOException { System.out.println("Absolute Path: " + file.getAbsolutePath()); System.out.println("Canonical Path: " + file.getCanonicalPath()); System.out.println("Path: " + file.getPath()); } }
根据上面程序的输出,使用规范路径最适合避免因相对路径而导致的任何问题。另请注意,java文件路径方法不检查文件是否存在。它们只是处理创建File对象时使用的文件的路径名。
¥ 我要打赏 纠错/补充 收藏
哥,这回真没有了
本文介绍了Java中File类的三种文件路径处理方法:getPath()、getAbsolutePath()和getCanonicalPath()。通过示例代码展示了它们在处理相对路径、复杂相对路径和URI路径时的行为,并强调了规范路径在避免相对路径问题上的优势。Java文件路径方法并不检查文件实际存在,仅处理给定的路径名。

被折叠的 条评论
为什么被折叠?



