您的位置:首页 > 编程语言 > Java开发

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

2015-01-16 10:44 162 查看
先总的说一下区别:

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盘下的摸一个文件的路径,这个就是绝对路径。

相对路径:例如:工程目录下需要读取某个文件,相对于运行该读取程序的文件路径,就是相对路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: