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編程相關問題,未完待續......


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM