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:允許其他應用程序寫入,會覆蓋原數據。