一 SDCard介紹
1.SDCard可以把他看看做是移動硬盤或U盤,也就是手機的內存卡
2.SDCard的創建是在eclipse創建模擬器時隨同創建,也可以使用dos命令創建
二 SDCard的使用
在程序中訪問SDCard的時候需要申請訪問的SDCard權限,即是在AndroidManifest.xml中加入SDCard的權限
<!–允許應用程序寫到外部存儲器–>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!–允許裝入和卸載文件系統的移動存儲 –>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
也可以通過AndroidManifest.xml中的可視化視圖來創建
我們給SDCard賦予權限之後,就可以在activity中往SDCard中寫入文件瞭,具體的代碼如下:
package cn.csdn.hr.android.sdcard;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
publicclass SdcardActivity extends Activity {
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// sdcard的目錄是 mnt/sdcard 或者是sdcare
setContentView(R.layout.main);
// 寫入數據到sdcard上
try {
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
// 首先創建一個路徑 ,路徑的創建在android1.6以上,低版本路徑為/sdcard
//通過web得到路徑,放置有的版本不一致而出錯
File dirPath = Environment.getExternalStorageDirectory();
//通過日志的方式輸出,我們可在File Explorer中看到輸出
Log.i("MSG",dirPath.toString());
//String dirPath = "/mnt/sdcard";
// 創建寫入的文件 www.aiwalls.com
File file = new File(dirPath.toString(), "csdn.txt");
// 寫入
FileOutputStream fos = new FileOutputStream(file);
fos.write("你好".getBytes("UTF-8"));
fos.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
然後我們就可以在目錄下看到所創建的csdn.text文件,目錄為:
註:
1.Environment.getExternalStorageState()方法用於獲取SDCard的狀態,如果手機裝有SDCard,並且可以進行讀寫,那麼方法返回的狀態等於Environment.MEDIA_MOUNTED。
2.Environment.getExternalStorageDirectory()方法用於獲取SDCard的目錄,當然要獲取SDCard的目錄
摘自 韓曉爽的專欄