要了解怎樣運用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必須是絕對路徑的原因。