Java和Android檔案操作

來源:互聯網
上載者:User

標籤:

File這是檔案基類,抽象地代表一個檔案實體,它有四個不同的構造方法:

 File(File dir, String name) 
 File(String path)  
 File(String dirPath, String name) 
 File(URI uri) 
 這些構造方法的實質都是一樣的,就是構造一個File執行個體,必須提供一個完整的檔案路徑。
 構造了一個File執行個體,並不是說就建立了一個檔案或檔案夾,這個File執行個體,只是實際系統內檔案實體的一個代表。
重要方法:public boolean exists()   判斷檔案或檔案夾是否存在

    public boolean isFile()   判斷是否為檔案

    public boolean isDirectory  判斷是否為檔案夾

  public boolean createNewFile()  根據制定的路徑和檔案名稱建立一個新的,空的檔案

    public boolean  mkdir()   根據制定的路徑建立檔案夾  (一級操作)

    public boolean mkdirs()  根據制定的路徑建立檔案夾  (多級操作)
    public boolean delete() 刪除檔案或檔案夾

   public boolean renameTo(File dest)  重新命名檔案或檔案夾

   public long length()  獲得檔案的長度,單位為 byte(檔案夾不可用)

 

   public String getName()  獲得檔案或檔案夾的名字

   public String getAbsolutePath() 獲得檔案或檔案夾的絕對路徑

   pubic String getPath()  獲得檔案或檔案夾的路徑


  public File[]  listFiles()  返迴文件夾內所有的File 對象

  public String[]  list()  返迴文件夾內所有的檔案或檔案夾的名字

 

Android 應用內的檔案儲存體機制:

Activity 提供了兩個方法,可以分別獲得基於位元組的輸入和輸出資料流:

   public FileOutputStream  openFileOutput(String name, int mode) 獲得輸出資料流

   public FileInputStream  openFileInput(String name) 獲得輸入資料流

這兩個方法都會在data/data/<applicatin-package>/files/ 來建立或讀取檔案,也就是說這是類似SharedPreference的,專門為一個應用內提供的檔案儲存體機制。(預設情況下,不能在不同的應用之間共用)

mode有如下四種模式:
    Use 0 or MODE_PRIVATE( the default operation) :用0表示預設值,只能夠建立檔案的應用程式訪問該檔案,每次檔案寫入為覆蓋方式。
    MODE_APPEND : 每次檔案寫入為追加方式,類似於StringBuffer中的append()方法。
    MODE_WORLD_READABLE  :只有讀許可權。
    MODE_WORLD_WRITEABLE :只有寫入權限。
    如果想同時得到讀與寫的許可權,則可以在mode處通過如下方式建立:MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE 

 

檔案名稱過濾器一般用法


1.實現FilenameFilter介面;

2.實現boolean accept(File dir,String name);   //dir表示檔案的目前的目錄,name表示檔案名稱;

class MyFilter implements FilenameFilter{
         private String type;            //type為需要過濾的條件,比如如果type=".jpg",則只能返回尾碼為jpg的檔案
         public MyFilter(String type){
               this.type = type;
         }

        public boolean accept(File dir,String name){           //返回true的檔案則合格
       }
}

 

android的檔案操作要有許可權:

判斷SD卡是否插入

Environment.getExternalStorageState().equals(

android.os.Environment.MEDIA_MOUNTED);

獲得sd卡根目錄

File skRoot = Environment.getExternalStorageDirectory();

獲得私人根目錄

File fileRoot = Context.getFilesDir()+"";

確定或獲得檔案夾和檔案路徑

String path = File.getPath();//相對

String path = File.getAbsoultePath();//絕對

獲得檔案或檔案夾的父目錄

String parentPath = File.getParent()

獲得檔案或檔案夾的名稱:

String Name = File.getName();

建立檔案或檔案夾

File.createNewFile();//建立檔案

判斷是檔案或檔案夾

File.isDirectory()

列出檔案夾下的所有檔案和檔案夾名

File[] files = File.listFiles();

修改檔案夾和檔案名稱

File.renameTo(dest);

刪除檔案夾或檔案

File.delete();

檔案讀寫操作模式

Context.MODE_PRIVATE:新內容覆蓋原內容

Context.MODE_APPEND:新內容追加到原內容後

Context.MODE_WORLD_READABLE:允許其他應用程式讀取

Context.MODE_WORLD_WRITEABLE:允許其他應用程式寫入,會覆蓋原資料

Java和Android檔案操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.