Java文件路径,绝对路径和规范路径
时间:2020-02-23 14:36:33 来源:igfitidea点击:
今天,我们将研究Java文件路径。
Java File路径可以是抽象的,绝对的或者规范的。
Java文件路径
java.io.File
包含三种确定文件路径的方法,我们将在本教程中进行探讨。
getPath():此文件路径方法将抽象路径名返回为String。
如果使用String路径名创建File对象,则仅返回pathname参数。
如果将URI用作参数,则它将删除协议并返回文件名。getAbsolutePath():此文件路径方法返回文件的绝对路径。
如果使用绝对路径名创建File,则仅返回路径名;如果使用相对路径创建文件对象,则以系统相关的方式解析绝对路径名。
在UNIX系统上,相对路径名通过对当前用户目录进行解析而被确定为绝对路径。
如果不是,则针对当前用户目录进行解析。getCanonicalPath():此路径方法返回绝对且唯一的规范路径名。
该方法首先在必要时将此路径名转换为绝对形式,就像通过调用getAbsolutePath方法,然后以与系统有关的方式将其映射为其唯一形式。
这通常涉及删除冗余名称,例如"。
"。
和" .."从路径名开始,解析符号链接(在UNIX平台上),并将驱动器号转换为标准大小写(在Microsoft Windows平台上)。
Java文件路径示例
让我们用一个简单的程序查看java中文件路径的不同情况。
package com.theitroad.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("/Users/hyman/test.txt"); printPaths(file); //relative path file = new File("test.xsd"); printPaths(file); //complex relative paths file = new File("/Users/hyman/../hyman/test.txt"); printPaths(file); //URI paths file = new File(new URI("file:///Users/hyman/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文件路径程序产生的输出。
根据输出,使用规范路径最适合避免相对路径引起的任何问题。
另外,请注意,java文件路径方法不会检查文件是否存在。
它们仅在创建File对象时使用的文件路径名上工作。