標籤:
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檔案操作