Android開發之SD卡上檔案操作 (轉)

weixin_34292959發表於2012-06-07

http://mwga.net.blog.163.com/blog/static/106456728201131321029130/
1
.       得到儲存裝置的目錄:/SDCARD(一般情況下):

SDPATH
=Environment.getExternalStorageDirectory()+"/";

2.       判斷SD卡上的資料夾是否存在:通過File物件的exists()方法。

  
/**

      * 判斷檔案是否已經存在;

      
*/

     
public boolean checkFileExists(String filepath) {

           File file
=new File(SDPATH+filepath);

           
return file.exists();

    }

3.       在SD卡上建立目錄:通過File物件的mkdir()方法實現。

  
/*

     * 在SD卡上建立目錄;

      
*/

     
public File createDIR(String dirpath) {

    File dir
=new File(SDPATH+dirpath);

   dir.mkdir();

    
return dir;

}

4.       在SD卡上建立檔案:通過File物件的createNewFile()方法實現。

  
/*

      * 在SD卡上建立檔案;

      
*/

     
public File createFile(String filepath) throws IOException{

      File file
=new File(SDPATH+filepath);

          file.createNewFile();

          
return file;

     }

5.       將InputStream位元組流寫入到SD卡檔案中。

     
/**

      * 將一個InputStream中的資料寫入至SD卡中

      
*/

     
public File writeStreamToSDCard(String dirpath,String filename,InputStream input) {

            

             File file 
= null;

             OutputStream output
=null;

              
try {

                  
//建立目錄;

                  createDIR(dirpath);

                  
//在建立 的目錄上建立檔案;

                  file 
= createFile(dirpath+filename);

                  output
=new FileOutputStream(file);

                  
byte[]bt=new byte[4*1024];

                  
while (input.read(bt)!=-1) {

                     output.write(bt);

                  }

                                  
//重新整理快取,

                  output.flush();

              } 
catch (IOException e) {

                  e.printStackTrace();

              }

              
finally{

                  
try{

                  output.close();

                  }
catch (Exception e) {

                     e.printStackTrace();

                  }

              }

             
return file;

    }

6.       訪問的許可權:

需在AndroidManifest中加上:

   
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

相關文章