File类及相关方法介绍
生活随笔
收集整理的這篇文章主要介紹了
File类及相关方法介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
File類
File類主要作用是對文件和目錄的抽象表示,該類主要是對目錄和文件進行創建、修改、刪除、過濾等操作File的構造器:
File(String pathname) //將路徑字符串實例化File實例 File(String parent, String child)// 從父路徑名和子路徑名來構建file實例 File(File parent, String child) //根據父路徑File實例和子路徑名來構建實例絕對路徑和相對路徑
絕對路徑:從盤符開始的路徑,表示一個完整的路徑 (windows:C:\ linux/mac: / )
相對路徑:不帶盤符的路徑即是相對路徑 "."表示當前路徑 “…”表示父路徑
分隔符:
windows分隔符:
mac分割符:/
java中有常量分隔符:File.separator ;//根據系統不同自動生成對應分隔符
例如:String path = “test”+File.separator(分隔符)+“test.txt”;
File常見的方法:
創建:
createNewFile()在指定位置創建一個空文件,成功就返回true,如果已存在就不創建,然后返回false。mkdir() 在指定位置創建一個單級文件夾。mkdirs() 在指定位置創建一個多級文件夾。renameTo(File dest)如果目標文件與源文件是在同一個路徑下,那么renameTo的作用是重命名, 如果目標文件與源文件不是在同一個路徑下,那么renameTo的作用就是剪切,而且還不能操作文件夾。刪除:
delete() 刪除文件或者一個空文件夾,不能刪除非空文件夾,馬上刪除文件,返回一個布爾值。 deleteOnExit()jvm退出時刪除文件或者文件夾,用于刪除臨時文件,無返回值。判斷:
exists() 文件或文件夾是否存在。 isFile() 是否是一個文件,如果不存在,則始終為false。 isDirectory() 是否是一個目錄,如果不存在,則始終為false。 isHidden() 是否是一個隱藏的文件或是否是隱藏的目錄。 isAbsolute() 測試此抽象路徑名是否為絕對路徑名。獲取:
getName() 獲取文件或文件夾的名稱,不包含上級路徑。 getAbsolutePath()獲取文件的絕對路徑,與文件是否存在沒關系 length() 獲取文件的大小(字節數),如果文件不存在則返回0L,如果是文件夾也返回0L。 getParent() 返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回null。lastModified()獲取最后一次被修改的時間。文件夾相關:
static File[] listRoots()列出所有的根目錄(Window中就是所有系統的盤符) list() 返回目錄下的文件或者目錄名,包含隱藏文件。對于文件這樣操作會返回null。 listFiles() 返回目錄下的文件或者目錄對象(File類實例),包含隱藏文件。對于文件這樣操作會返回null。 list(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄。對于文件這樣操作會返回null listFiles(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄。對于文件這樣操作會返回null。過濾功能的接口方法:
public interface FilenameFilter {//參數為目錄和指定過濾名稱//返回結果 true: 可以返回 false:不能返回boolean accept(File dir, String name); }舉例:
1.給定指定目錄,將該目錄下的文件按照樹形結構打印
public static void printTree(String filePath) {File head = new File(filePath);if(!head.exists()){//數據合法性檢驗System.out.println("數據不合法");return;}printTreeRealize(0,head); }public static void printTreeRealize( int index,File head) {//index表示查詢第幾目錄index++;//記錄查詢到第幾目錄了File[] files = head.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {return !pathname.isHidden();//過濾掉隱藏文件}});for (File file :files){String n = "-";for(int i = 1 ;i <index ;i++){//根據目錄級別判斷前面空格數量n = " "+n;}System.out.println(n+file.getName());//如果是文件夾繼續進入查詢if(file.isDirectory()){printTreeRealize(index,file);//遞歸實現}}}2.指定起始路徑下包含指定詞的所有文件(非隱藏文件)
//path:指定的查詢路徑 filter關鍵字public static void searchFile(String path, String filter) {File head = new File(path);if (!head.exists()){//參數合法性檢驗System.out.println("無效文件目錄");return;}searchFile1(head,filter);}public static void searchFile1(File head, String filter) {if(head.isFile()){//是文件if(head.getName().contains(filter)){//關鍵字匹配System.out.println(head.getAbsolutePath());}}else {File[] files = head.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {//過濾掉隱藏文件if (pathname.isHidden()) {return false;}return true;}});for (File file:files){searchFile1(file,filter);//遞歸實現深度查詢}}}總結
以上是生活随笔為你收集整理的File类及相关方法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Queue接口及是实现类Priority
- 下一篇: 对象流及序列化