天天看點

Android中檔案類File的詳細使用說明

    今天小馬來寫下自己的開發過程中碰到的問題和所犯的錯,雖然簡單,但還是希望通過總結提高自己,哪怕很小的進步,也希望朋友們跟小馬多交流,指點小馬的不足,多批評小馬,有很多東西要學,我們多多交流,共同進步,直接看代碼:

package com.mzh.www; 

import java.io.File; 

import java.io.IOException; 

import android.app.Activity; 

import android.os.Bundle; 

import android.os.Environment; 

/**   

* @Title: FileTestActivity.java 

* @Package com.mzh.www 

* @Description: 檔案類File的常用方法 

* @author MZH 

* @version V2.2 

*/ 

public class FileTestActivity extends Activity { 

    /** Called when the activity is first created. */ 

    @Override 

    public void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.main); 

        //小馬寫的時候不帶字尾名,其實這個要寫的 

        //而且安卓中不建議用此種寫法,支援使用Environment擷取路徑 

        String path = "/sdcard/fileName";  

        File file = new File(path); //不多講 

        //下面是File類的一些靜态屬性 

        //file.separator;    小馬以前喜歡用"/",雖然不錯,但不支援,接着看下面 

        //舉兩種 寫法: 

              //方法一: 

              String path2 = Environment.getExternalStorageDirectory()

.getPath() 

                             +"/"+"XiaoMa.txt"; 

              File fileName = new File(path2); 

              //此處可以添加對檔案的操作,IO流 

              //方法二: 

              String path3 = Environment.getExternalStorageDirectory()

                             +File.separator+"XiaoMa.txt"; 

              File fileNam = new File(path3); 

              /** 

               * 大家是不是發現這兩種寫法第二種多此一舉?其實并非如此的

*,在Android中,官方鼓勵支援使用 

               * File.separator來插入"/"符号 

               * 因為:不同的機型配置系統等各種因素下,"/"符号的轉義字元也會不同*

*,是以為保險起見, 

               * 建議朋友們使用File.separator來差別 

               */ 

              //下面講下檔案的建立是怎麼一回事 

              //Android 中建立檔案的方式有很多種,小馬現在講下

//我們經常用到的幾種哦,吼吼 

              File file3 = new File("path"); //path為要建立檔案的路徑

//,相關路徑可檢視API 

              //建立一個臨時檔案 

              //小馬講下,如果讓我們自己建立臨時檔案時,我們還得拼接檔案名

//,Android為我們提供了更快捷的方式 

              //prefix代表:檔案名字首,suffix代表:生成臨時檔案的格式,

//如:.txt .amr .jpg .png等等 

              try { 

                 //此處小馬未指定路徑,它會預設建立在SD卡根目錄下 

                File tempFile = File.createTempFile("字首", "格式"); //記得加入try語句塊中 

                //如果想要指定路徑,則可以這樣寫 

                File tempFile2  = File.createTempFile("字首", "格式",new File("指定臨時檔案路徑")); 

              } catch (IOException e) { 

                e.printStackTrace(); 

              }  

              //建立檔案的方式有三種:要看仔細咯 

                  File file2 = new File(path3);  //因為路徑是自己指定的,

//在此小馬就直接合上面定義過的路徑了 

                  if(!file2.exists()){ 

                       //方式一: 

                      try { 

                        file2.createNewFile(); 

                       } catch (IOException e) { 

                        // TODO Auto-generated catch block 

                        e.printStackTrace(); 

                       } 

                      //方式二: 

                      //file2.mkdir(); 

                      //方式三: 

                      //file2.mkdirs(); 

                      /** 

                       * 以上建立檔案方式好像也沒多大不同之處,小馬的的錯誤,

*建立檔案的時候随便調用這三個方法其中之一 

                       * 但後來發現還是有明顯差別的,現在貼一段官方API說明

*,小馬英語也不咋的,希望英語一般的朋友們 

                       * 看到英語不要怕自己不會翻譯什麼的,多查單詞,

*不會的再求助工作翻譯下,查可以提高自己的英語能力 

                       */ 

                       * 小述:講下“/”與“\”的不同,在建立檔案時不能使用使用windows方式,

*也就是"\",除非你轉義有linux方式的話就直接用“/”,省了麻煩,

*還不會出錯轉義錯誤等問題,對吧? 

                     /** 

                      * createNewFile() 

                        Creates a new, empty file on the file system according to the path information  

                        stored in this file. 

                        這個方法指在指定路徑下建立一個empty(空的,小馬就認識幾個單詞,

*其餘的都有道查)檔案  

                      */ 

                    /** 

                     * mkdir() 

                       Creates the directory named by the trailing filename of

 this file. 

                             這個方法指:建立一個指定目錄下的檔案,但這個方法不能建立多個目錄,

一般都使用加S的,這個盡量少用,一般私有檔案 

                             及私有目錄的建立用這個方法 

                     */ 

                      * mkdirs() 

                        Creates the directory named by the trailing filename of this file,  

                        including the complete directory path required to create this

 directory. 

                        這個方法指:建立一個指定目錄下的檔案,與上面不同的是,

此方法可以建立多個目錄哦,常用的建立檔案的方法 

                       * 最後,講下isDirectory() 與  isFile()的小差別 

                       * 小馬剛開始不懂什麼是Directory,後來試了下,講直接的,

就是:是否是檔案夾,isFile是否是檔案,簡單吧??O_O 

                  } 

    } 

    最後,不要忘記加Android中檔案操作的權限:

<!--往sdcard中寫入資料的權限 --> 

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

 <!--在sdcard中建立/删除檔案的權限 --> 

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

這些問題都是小馬在開發過程中遇到過的問題,雖然很低級 ,

但錯誤犯多了就不會犯了,最後 ,

小馬希望大家多查英文文檔,不管自己 

英語閱讀能力好不好,講真話,小馬的英語,可以讓你哭,

但要學會善用工具學習,愛程式設計,就要補程式設計方面的缺陷,不要被這英語吓到 

啦,今天就講這些内容吧,File類中其它方法都很簡單,

大家可以試着用下詞典查下意思,很容易知道它是幹嗎的方法的,相信小馬 

小馬希望:能跟大夥交流學習,共同進步,完成菜鳥中的菜鳥,

到高手中的高手的蛻變,高手,是從菜鳥努力導緻的,不是生下來就有的, 

希望我們共同進步

日後小馬如果再在開發過程中碰到有關File類的問題,會繼續追加到此文章中,希望對處于跟小馬一樣階段的朋友們有所幫忙,謝謝啦,O_O,每天進步一點,加油

     本文轉自華華世界 51CTO部落格,原文連結:http://blog.51cto.com/mzh3344258/746174,如需轉載請自行聯系原作者

繼續閱讀