概念上的區(qū)別:(內(nèi)容來自jdk,個(gè)人感覺這個(gè)描述信息,只能讓明白的人明白,不明白的人看起來還是有點(diǎn)難度(特別試中文版,英文版稍好些)所以在概念之后我會(huì)舉例說明。如果感覺看概念很累就跳過直接看例子吧。看完例子回來看概念會(huì)好些。


































二、例子:
1,getPath()與getAbsolutePath()的區(qū)別











得到的結(jié)果:






getAbsolutePath()得到的是全路徑
如果構(gòu)造的時(shí)候就是全路徑那直接返回全路徑
如果構(gòu)造的時(shí)候試相對(duì)路徑,返回當(dāng)前目錄的路徑+構(gòu)造file時(shí)候的路徑
2,getAbsolutePath()和getCanonicalPath()的不同







3,getCanonicalPath()和自己的不同。
就是解釋這段話:






確定你的系統(tǒng)是Windows系統(tǒng)。
(1),確定D盤下沒有Text.txt這個(gè)文件,直接執(zhí)行這段代碼,得到的結(jié)果是:

(2)在D盤下建立一個(gè)文件,名叫text.txt,再次執(zhí)行代碼,得到結(jié)果

同時(shí)可以對(duì)比getAbsolutePath()看看,這個(gè)得到的結(jié)果是一樣的。
原因:
window是大小寫不敏感的,也就是說在windows上test.txt和Test.txt是一個(gè)文件,所以在windows上當(dāng)文件不存在時(shí),得到的路徑就是按照輸入的路徑。但當(dāng)文件存在時(shí),就會(huì)按照實(shí)際的情況來顯示。這也就是建立文件后和刪除文件后會(huì)有不同的原因。文件夾和文件類似。
三、最后:
1,嘗試在linux下執(zhí)行上邊的步驟,兩次打印的結(jié)果是相同的,因?yàn)閘inux是大小寫敏感的系統(tǒng)。
2,手動(dòng)刪掉test.txt,然后嘗試執(zhí)行下邊代碼














執(zhí)行上邊兩個(gè)函數(shù),看看結(jié)果,然后思考一下為什么?
1,的結(jié)果是兩個(gè)大寫,
2,的結(jié)果試兩個(gè)小寫
連續(xù)兩個(gè)大寫的,是否跟上邊的矛盾 ?
這是因?yàn)樘摂M機(jī)的緩存機(jī)制造成的。第一次Filefile
=
new
File(
"
D:\\Text.txt
"
);決定了結(jié)果.
原文地址: http://www.blogjava.net/dreamstone/archive/2007/08/08/134968.html
java.io.File 中 getPath(), getAbsolutePath() 和 getCanonicalPath() 三個(gè)方法的區(qū)別
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
