安卓需要絕對路徑的原因(相對路徑,絕對路徑)

要了解怎樣運用Android的外部存儲,首先我們理解一下相對路徑和絕對路徑
具體大家百度百科。

絕對路徑:絕對路徑是指書寫文件的完整路徑(比較好理解),如d:\test[Java](http://lib.csdn.net/base/java)\helloword.java,在該路徑下包含文件的完整路徑d:\test\java\以及文件名helloword.java,
使用該路徑可以唯一的找到一個文件,不會產(chǎn)生歧義,但是使用絕度路徑表示文件時有很大的局限性,不能再不同的操作系統(tǒng)下運行,因為不同的操作
系統(tǒng)對文件路徑的表示方式可能是不同的。

相對路徑:相對路徑并不是一個完整的路徑(注意“相對”二字,說明得有一個參照物),是指書寫文件的部分路徑,如\test\java\helloworld.java,該路徑只包含文件的部分路徑\test\java和文件全名helloworld.java,部分路徑是指當(dāng)前路徑下的子路徑,此時為此相對路徑的父路徑時d:\,所以完成路徑是d:\test\java\helloworld.java,如果換成e盤,完整路
徑就是e:.....,可以看出,你并不知道這個文件在哪個盤,那么神奇的地方是怎樣根據(jù)這個殘缺的路徑找到文件,當(dāng)然,相對路徑的父路徑是誰,他就指向父路徑下此相對路徑的
文件,可以看出是必須有一個參照物,即父路徑,是相對于父路徑的路徑。完整應(yīng)該是父路徑\相對路徑\文件名。如果你換了父路徑,而換了的父路徑并沒有這個相對路徑和文件
就有可能報null,可以看出相對路徑時的靈活性非常強。我們平時代碼中大多數(shù)用到的也是相對路徑,或相對url(關(guān)于url請移步),畢竟名字太長并不是容易記得住的。

雖然在大多數(shù)情況下我們用到的時相對路徑,但在Android中,我們大多數(shù)情況下用的卻是絕對路徑,那么,這是為什么呢。
原因:普通的java項目創(chuàng)建于服務(wù)器(pc也可以看做服務(wù)器127.0.0.1)而運行于服務(wù)器,所以父目錄(即相對路徑參照物)就是相對路徑的參照物,所以在自己的服務(wù)器可以操縱自己的文件目錄而不會出現(xiàn)null的問題。
而Android項目創(chuàng)建于電腦而運行與手機,項目的參照物是電腦下的項目路徑,但在換到手機上相對路徑的參照物還是電腦,所以這是就會報null的錯誤,這就是Android必須是絕對路徑的原因。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評論 25 709
  • 三、閉包和高階函數(shù) 3.1 閉包 3.1.1 變量的作用域 所謂變量的作用域,就是變量的有效范圍。通過作用域的劃分...
    梁同學(xué)de自言自語閱讀 1,551評論 0 6
  • 我很早就愛上了美好愛情 我想做個美食家 為了用紅酒烹飪玫瑰 我為自己買了一本調(diào)情的 故事書。
    包新吉樂閱讀 179評論 0 1
  • 好久沒有認認真真寫一寫自己的感受,提筆突然有些怯場。前些日子才發(fā)現(xiàn),就寫文章這件事情,其實用紙筆來寫和用鍵盤來敲擊...
    totoroclub閱讀 326評論 0 0

友情鏈接更多精彩內(nèi)容