上一節(jié)我們學(xué)習(xí)了Android的數(shù)據(jù)存儲(chǔ)采用File,但是這樣的數(shù)據(jù)是存儲(chǔ)在應(yīng)用程序內(nèi)的,那么也就是說這樣的存儲(chǔ)的文件大小還是有一定要限制的,有時(shí)候我們需要存儲(chǔ)更大的文件,比如電影等,這就用到了我們的SDSard存儲(chǔ)卡。Android也為我們提供了SDCard的一些相關(guān)操作。Environment這個(gè)類就可以實(shí)現(xiàn)這個(gè)功能。
Environmet類
常用常量
String MEDIA_MOUNTED
|
當(dāng)前Android的外部存儲(chǔ)器可讀可寫
|
String MEDIA_MOUNTED_READ_ONLY
|
當(dāng)前Android的外部存儲(chǔ)器只讀
|
常用方法
方法名稱
|
描述
|
public static File getDataDirectory ()
|
獲得Android下的data文件夾的目錄
|
public static File getDownloadCacheDirectory ()
|
獲得Android Download/Cache 內(nèi)容的目錄
|
public static File getExternalStorageDirectory ()
|
獲得Android外部存儲(chǔ)器也就是SDCard的目錄
|
public static String getExternalStorageState ()
|
獲得Android外部存儲(chǔ)器的當(dāng)前狀態(tài)
|
public static File getRootDirectory ()
|
獲得Android下的root文件夾的目錄
|
要想實(shí)現(xiàn)對(duì)SDCard的讀取操作,只需要按以下幾個(gè)步驟就行:
1、 先判斷這臺(tái)手機(jī)設(shè)備上是否有SDCard且具有讀寫SDCard的權(quán)限
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
2、 調(diào)用Environment.getExternalStorageDirectory()獲得到外部存儲(chǔ)器的目錄
3、 使用IO流對(duì)外部存儲(chǔ)器進(jìn)行文件的讀寫
4、 別忘記了要在AndroidMainfest.xml中添加權(quán)限哦
特別聲明:以下操作必須要在如下權(quán)限下完成:
- <!-- 在SDCard中創(chuàng)建與刪除文件權(quán)限 -->
-
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
-
- <!-- 往SDCard中寫入數(shù)據(jù)權(quán)限 -->
-
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
實(shí)例:讀寫SDCard上的文件
實(shí)現(xiàn)效果
用File Explorer可以看到如下圖一樣的效果:
開發(fā)注意事項(xiàng):
1、 一定不能忘記添加權(quán)限
- <!-- 在SDCard中創(chuàng)建與刪除文件權(quán)限 -->
-
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
-
- <!-- 往SDCard中寫入數(shù)據(jù)權(quán)限 -->
-
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2、 要判斷一下是否插入SD卡和是否具有讀寫的能力:
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
如需轉(zhuǎn)載引用請(qǐng)注明出處:http://blog.csdn.net/jiahui524
源代碼下載:http://download.csdn.net/download/jiahui524/3799819
|