欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

使用Apache commons IO包規范文件名

系統 1987 0

【一】Apache commons IO包之FilenameUtils

在使用JDK的File類構建目錄、文件對象時,通常會碰到以下的問題:

?①分隔符的問題:Unix系統和Windos系統的路徑分隔符、換行符不同
?②路徑規范的問題:有些API對于返回的目錄路徑不帶"/",有些則有
?③文件名規范的問題:有些文件名中間帶有空格,導致程序解析錯誤

上面的問題雖然不算復雜,卻也惱人。有時候甚至會在這些問題上耗費大量的時間。于是Apache commons io包提供了一個FilenameUtils類來專門幫助我們解決這樣的問題。根據Apache common io的說法:你可以通過使用JDK自帶的File類構造方法File(String parent, String child)來避免使用這個類,但是實際上這個類還是很有用的!

【二】Apache commons IO包中對路徑的定義

要了解Apache commons IO包如何處理路徑文件名的問題,首先要知道Apache中如何定義關于路徑的參數:
使用Apache commons IO包規范文件名
關于路徑有3個概念:
?①前綴:盤符或者根目錄
?②路徑:從前綴或根目錄開始直至文件的所在目錄
?③全路徑:包含了前綴和路徑

要注意的是:在Apache的所以關于路徑的概念中,都是以分隔符結尾的。因為按照Apache的說法,如果沒有提供分隔符,它將不能正確地識別路徑代表的是一個目錄還是一個文件,在這種情況下只能選擇將其識別為一個文件。

關于文件名也有3個概念:
?①基本名稱:不包含路徑和擴展名的部分
?②擴展名稱:從.開始直至結束的部分
?③文件名稱:包含了基本名稱和擴展名稱

要注意的是:擴展名并不包含"."

在路徑概念中,前綴是一個很重要的概念:因為它告訴了程序應該從那里開始識別,在Apache commons IO包中,使用如下規則去獲取前綴:
使用Apache commons IO包規范文件名

【三】常用API

①路徑規范

首先要介紹的就是normalize方法,這個方法用于對各種類型的路徑進行規范,它的規則如下:

A trailing slash will be retained.
A double slash will be merged to a single slash (but UNC names are handled).
A single dot path segment will be removed.
A double dot will cause that path segment and the one before to be removed.
If the double dot has no parent path segment to work with, null is returned


下面是官網上面的一個例子:
使用Apache commons IO包規范文件名

要特別注意的是:這個方法總是會返回一個結尾帶有"/"的路徑,如果你不需要這個分隔符,那么你可以調用另外一個方法:normalizeNoEndSeparator(String filename)。

②路徑的比較

有點時候我們需要比較兩個路徑是否代表了同一個資源,但是由于路徑寫法或者API調用的不同,即便同一個對象也有可能返回false的結果。于是Apache提供了一個直接簡便的方法:equals。這個方法的完整簽名是:

?static boolean equals(String filename1, String filename2,
?????????????????????????????? boolean normalized, IOCase caseSensitivity)

其中normalized參數表示在比較前是否要進行規范,通常都是true,參數caseSensitivity表示是否大小寫敏感。這個參數有3個可選擇的選項,他們分別是:
?※ IOCase.INSENSITIVE
?※ IOCase.SENSITIVE
?※ IOCase.SYSTEM

通常為了移植性我們都會選擇IOCase.SYSTEM,即根據系統的類型自動決定。

③路徑獲取

分為path和full path兩種情況,可用的API有:

?※ getFullPath(String filename)/getFullPathNoEndSeparator(String filename)
?※?getPath(String filename)/getPathNoEndSeparator(String filename)
?
④路徑的截取

包含了對擴展名的位置判斷和分隔符的位置判斷。設想一下假如現在有這樣的一個路徑:C:/path/my.file/you.txt

如果我們要獲取擴展名,使用indexOf('.'),那么返回的將是錯誤的結果。使用Apache commons IO提供的indexOfExtension(String filename)方法,將會首先檢查在"."后是否還有"/"分隔符。

該方法內部默認調用了另外一個方法:indexOfLastSeparator(String filename)

⑤文件名的獲取

分為全文件名,基本文件名,擴展名。可用的API有:

?※ getName(String filename)
?※ getBaseName(String filename)
?※ getExtension(String filename)

使用Apache commons IO包規范文件名


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 二区在线视频 | 精品72久久久久久久中文字幕 | 午夜爱爱爱爱爽爽爽网站免费 | 久草在线在线观看 | 黄色毛片免费看 | 国产毛片a精品毛 | 欧美一性一乱一交 | av日韩在线免费观看 | 成人午夜| 久久精品这里是免费国产 | 色中文网 | 日本在线亚州精品视频在线 | 久久久综合九色合综国产 | 国产乱偷国产偷高清 | 九九精品久久久久久噜噜 | 欧日韩不卡在线视频 | 欧美日韩在线播放一区二区三区 | 97视频久久久 | 99爱在线精品视频免费观看9 | 欧美一级毛片在线看视频 | 激情网五月天 | 高清性做爰免费无遮挡网站 | 亚洲国产一区在线 | 日韩 欧美 自拍 | 日韩精品免费一级视频 | 国产噜噜在线视频观看 | 久久第四色| 孕妇体内谢精满日本电影 | 久草视频官网 | 色五月视频 | 九九久久亚洲综合久久久 | 九九久久精品 | 欧美日韩久久久 | 天天色天天射天天操 | 日韩av免费看 | 国产精品久久久久久久一区探花 | 久久综合久久久久 | jizz日本女人 | 国产成在线观看免费视频 | 久久2| 欧美一级片在线看 |