大多Android設(shè)備都配有SD卡,我們稱之為外部存儲(chǔ)空間。那么如何對(duì)SD卡進(jìn)行讀寫呢?下面我們講述SD卡讀與寫的操作。
1.SD卡的寫操作
假設(shè)我們?cè)谟脩舻卿洉r(shí)將用戶輸入的用戶名和密碼都保存在SD卡中,那么如何向SD卡設(shè)備中寫入數(shù)據(jù)呢?參考Android下數(shù)據(jù)的保存和讀取所涉及的登錄項(xiàng)目新建一個(gè)登錄項(xiàng)目(命名為:用戶登錄保存數(shù)據(jù)SD卡),當(dāng)點(diǎn)擊登錄按鈕時(shí)將用戶名和密碼保存到SD卡這一外部存儲(chǔ)空間中而不再是保存到內(nèi)部存儲(chǔ)空間,具體代碼塊如例1-1所示:
- 保存數(shù)據(jù)業(yè)務(wù)方法
上圖方法的設(shè)計(jì)思路是:getExternalStorageDirectory方法獲取SD卡所在的路徑,在該路徑下新建一個(gè)文件,將數(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所示
再次運(yùn)行程序,提示保存用戶名密碼成功,此時(shí)從DDMS中的文件瀏覽視圖中可以瀏覽到該文件如圖1-4所示:
導(dǎo)出文件,如圖1-5所示:
圖1-5所示
2.SD卡讀操作
完成了SD卡寫的操作,我們現(xiàn)在要讀取寫入SD卡中的數(shù)據(jù)并將該數(shù)據(jù)部署到相應(yīng)的控件上,具體方法如例1-3所示:
1.3數(shù)據(jù)讀取方法
上圖方法的設(shè)計(jì)思路是:讀取文件的存儲(chǔ)路徑并獲取該文件的輸入流,在程序中將讀取的數(shù)據(jù)流轉(zhuǎn)換成字符串并顯示在相應(yīng)的控件上。主Activity中調(diào)用此方法,如例1-4所示:
1.4方法調(diào)用
此時(shí),運(yùn)行程序效果如圖1-6所示:
圖1-6所示
上述操作可以得出:向SD卡寫數(shù)據(jù)時(shí)要添加相應(yīng)的權(quán)限,而讀SD卡的數(shù)據(jù)時(shí)則不需要添加權(quán)限,這便存在著安全隱患。為此,google工程師對(duì)高版本的Android系統(tǒng)設(shè)置了SD卡的讀取保護(hù)。當(dāng)選擇了【系統(tǒng)設(shè)置】à【開(kāi)發(fā)者選項(xiàng)】à【對(duì)SD卡進(jìn)行讀寫保護(hù)】選項(xiàng),便設(shè)置了SD卡的讀寫權(quán)限,若要讀寫SD卡則必須添加讀寫權(quán)限,否則無(wú)法讀寫SD卡。
推薦閱讀:
python培訓(xùn)
本文版權(quán)歸黑馬程序員Android培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!作者:黑馬程序員Android培訓(xùn)學(xué)院首發(fā):http://android.ithaima.com