java知识点---文件分隔符

本篇讲述java编程中,怎样解决跨平台时,因不同系统中分隔符不同导致的文件或路径找不到的问题

首先来看两个例子:

一、linux系统和windows系统中的文件路径:

Linux系统:

Windows系统:

可以看到Linux系统中,路径中的文件名分隔符是"/",而Windows中是"\"

二、linux系统和windows系统中的path路径:

Linux系统:

.:%JAVA_HOME%\lib:%JAVA_HOME%\lib\tools.jar:%JAVA_HOME%\jre\lib\rt.jar:

Windows系统:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar;

同样,可以看到Linux系统中,path间的分隔符是":"(冒号),而Windows中是";"(分号)

因为分隔符的不同,我们在编程时就不能硬性制定文件路径或path之间的分隔符,因为这会导致跨平台时出现找不到文件或路径的错误,

在java中是这样解决的,jdk中有对应的方法,可以根据当前系统类型动态地获取文件或path的分隔符,下面是使用方法及源码中的相关描述:

一、获取文件路径中的文件名分隔符:

File.separator;

 下面开始追踪源码:

第一步:

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

第二步:

系统相关的默认名称分隔符,这个字段被初始化为包含系统属性file.separator值的第一个字符,在UNIX系统中是”/”,在Windows系统中是”\”

第三步:

FileSystem对象表示当前平台的本地文件系统

第四步:

返回本地文件系统的名称分隔符

二、获取path中的分隔符:

File.pathSeparator

第一步:

系统相关的路径分隔符,为了方便被表示为一个字符串,这个字符串是一个单独的字符,即pathSeparatorChar

第二步:

系统相关的路径分隔符。这个字段被初始化为系统属性path.separator值的第一个字符,这个字符被用来分隔以列表形式给定的文件序列的文件名称,

在UNIX系统中是冒号(:),在Windows系统中是分号(;)

第三步:

FileSystem对象表示当前平台的本地文件系统

第四步:

返回本地文件系统的路径分隔符

所以在java编程中,遇到文件和path等操作时,为了跨平台时不引起因分隔符导致的错误,就要调用这两个方法来进行文件路径或path的拼接。

本系列为java编程相关问题,未完待续......

posted @ 2017-03-09 16:55  bug改了我  阅读(9259)  评论(0编辑  收藏  举报