java.io.File中的部分不好理解的区别

先总的说一下区别:
File.pathSeparator指的是分隔连续多个路径字符串的分隔符,例如:
java   -cp   test.jar;abc.jar   HelloWorld
就是指“;”

File.separator才是用来分隔同一个路径字符串中的目录的,例如:
C:\Program Files\Common Files
就是指“\”

 

separatorChar

public static final char separatorChar

与系统有关的默认名称分隔符。此字段被初始化为包含系统属性 file.separator 值第一个字符。在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\'。

separator

public static final String separator

与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 separatorChar。

 

pathSeparatorChar

public static final char pathSeparatorChar

与系统有关的路径分隔符。此字段被初始为包含系统属性 path.separator 值的第一个字符。此字符用于分隔以路径列表形式给定的文件序列中的文件名。在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。

pathSeparator

public static final String pathSeparator

与系统有关的路径分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 pathSeparatorChar。
 

例子:

 File ft = new File(File.separator);//指向当前class文件所在的盘符,例如D:
 File ft2 = new File(ft,"File_separator.txt");//  D:\File_separator.txt

mkdir()

创建此抽象路径名指定的目录,创建一个目录,如果有不存在但是必要的父目录,则创建不成功

例如:

        File  f=new File(File.separator+"测试");

        f.mkdir();   可以创建成功


File  f=new File(File.separator+"测试父目录"+File.separator+"子测试");
        f.mkdir();
由于“测试父目录”这个文件夹不存在,则创建失败了

怎么解决这个问题呢?那就是

        File  f=new File(File.separator+"测试父目录"+File.separator+"子测试");
        f.mkdirs();

mkdirs()  创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。


URI,URL,URN

URI 统一资源标示符   URL  统一资源定位符(定位器)  URN 统一资源命名    

其实URL,URN都是统一资源标示符,只不过URL不仅提供了资源表示,还提供了资源的位置

URL,URN更像是URI的子类

总结一下:URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,所以,是绝对的,而通常说的relative URL,则是针对另一个absolute URL,本质上还是绝对的。

绝对路径:例如:C盘下的摸一个文件的路径,这个就是绝对路径。

相对路径:例如:工程目录下需要读取某个文件,相对于运行该读取程序的文件路径,就是相对路径。



你可能感兴趣的:(separator,pathseparator)