Android開發 將數據保存到SD卡


前言:  
使用Activity的openFileOutput()方法保存文件,文件是存放在手機空間上,一般手機的存儲空間不是很大,存放些小文件還行,如果要存放像視頻這樣的大文件,是不可行的。對於像視頻這樣的大文件,我們可以把它存放在SDCard。 SDCard是干什么的?你可以把它看作是移動硬盤或U盤。   
在模擬器中使用SDCard,你需要先創建一張SDCard卡(當然不是真的SDCard,只是鏡像文件)。創建SDCard可以在Eclipse創建模擬器時隨同創建,也可以使用DOS命令進行創建,如下:  在Dos窗口中進入android SDK安裝路徑的tools目錄,輸入以下命令創建一張容量為2G的SDCard,文件后綴可以隨便取,建議使用.img:  mksdcard 2048M D:\AndroidTool\sdcard.img  Java代碼 
 

.在AndroidManifest.xml中加入訪問SDCard的權限如下:   

  <!-- 在SDCard中創建與刪除文件權限 -->    

   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>    
    <!-- 往SDCard寫入數據權限 -->    
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>    
  要往SDCard存放文件,程序必須先判斷手機是否裝有SDCard,並且可以進行讀寫。    
    注意:訪問SDCard必須在AndroidManifest.xml中加入訪問SDCard的權限                    
          if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){    
               File sdCardDir = Environment.getExternalStorageDirectory();//獲取SDCard目錄,2.2的時候為:/mnt/sdcart  2.1的時候為:/sdcard,所以使用靜態方法得到路徑會好一點。    
            File saveFile = new File(sdCardDir, "abc.txt");    
            FileOutputStream outStream = new FileOutputStream(saveFile);    

              outStream.write("你好".getBytes());    

           outStream.close();    

              Environment.getExternalStorageState()方法用於獲取SDCard的狀態,如果手機裝有SDCard,並且可以進行讀寫,那么方法返回的狀態等於Environment.MEDIA_MOUNTED。   

           Environment.getExternalStorageDirectory()方法用於獲取SDCard的目錄,當然要獲取SDCard的目錄,你也可以這樣寫: 

            File sdCardDir = new File("/sdcard"); //獲取SDCard目錄   

              File saveFile = new File(sdCardDir, "abc.txt");    
            //上面兩句代碼可以合成一句: File saveFile = new File("/sdcard/abc.txt");   
             FileOutputStream outStream = new FileOutputStream(saveFile);   
        outStream.write("你好test".getBytes());   26.                outStream.close();   
*重點:在保存之前需要判斷 SDCard 是否存在,並且是否具有可寫權限:       
              if(Environment.MEDIA_MOUNTED.endsWith(Environment.getExternalStorageState())) 
              Environment.MEDIA_MOUNTED : 存在SDCard,並具有可讀可寫權限  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM