Android中把檔案存放在SDCard

來源:互聯網
上載者:User

一  SDCard介紹
1.SDCard可以把他看看做是移動硬碟或隨身碟,也就是手機的記憶卡
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.2cto.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的目錄

 


摘自 韓曉爽的專欄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.