大多Android設(shè)備都配有SD卡,我們稱之為外部存儲空間。那么如何對SD卡進行讀寫呢?下面我們講述SD卡讀與寫的操作。
1.SD卡的寫操作
假設(shè)我們在用戶登錄時將用戶輸入的用戶名和密碼都保存在SD卡中,那么如何向SD卡設(shè)備中寫入數(shù)據(jù)呢?參考Android下數(shù)據(jù)的保存和讀取所涉及的登錄項目新建一個登錄項目(命名為:用戶登錄保存數(shù)據(jù)SD卡),當點擊登錄按鈕時將用戶名和密碼保存到SD卡這一外部存儲空間中而不再是保存到內(nèi)部存儲空間,具體代碼塊如例1-1所示:
- 保存數(shù)據(jù)業(yè)務(wù)方法

上圖方法的設(shè)計思路是:getExternalStorageDirectory方法獲取SD卡所在的路徑,在該路徑下新建一個文件,將數(shù)據(jù)寫入該文件中。在主Activity中調(diào)用此方法,如例1-2所示:
- 方法調(diào)用


圖1-1所示
從上圖1-1可知數(shù)據(jù)保存失敗,查看日志信息如圖1-2所示:

圖1-2所示
在清單文件中添加相關(guān)權(quán)限,如圖1-3所示:

圖1-3所示
再次運行程序,提示保存用戶名密碼成功,此時從DDMS中的文件瀏覽視圖中可以瀏覽到該文件如圖1-4所示:

導出文件,如圖1-5所示:

圖1-5所示
2.SD卡讀操作
完成了SD卡寫的操作,我們現(xiàn)在要讀取寫入SD卡中的數(shù)據(jù)并將該數(shù)據(jù)部署到相應(yīng)的控件上,具體方法如例1-3所示:
1.3數(shù)據(jù)讀取方法


上圖方法的設(shè)計思路是:讀取文件的存儲路徑并獲取該文件的輸入流,在程序中將讀取的數(shù)據(jù)流轉(zhuǎn)換成字符串并顯示在相應(yīng)的控件上。主Activity中調(diào)用此方法,如例1-4所示:
1.4方法調(diào)用

此時,運行程序效果如圖1-6所示:

圖1-6所示
上述操作可以得出:向SD卡寫數(shù)據(jù)時要添加相應(yīng)的權(quán)限,而讀SD卡的數(shù)據(jù)時則不需要添加權(quán)限,這便存在著安全隱患。為此,google工程師對高版本的Android系統(tǒng)設(shè)置了SD卡的讀取保護。當選擇了【系統(tǒng)設(shè)置】à【開發(fā)者選項】à【對SD卡進行讀寫保護】選項,便設(shè)置了SD卡的讀寫權(quán)限,若要讀寫SD卡則必須添加讀寫權(quán)限,否則無法讀寫SD卡。
推薦閱讀:
python培訓
本文版權(quán)歸黑馬程序員Android培訓學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!作者:黑馬程序員Android培訓學院首發(fā):http://android.ithaima.com