日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

File类及相关方法介绍

發(fā)布時(shí)間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 File类及相关方法介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

File類

File類主要作用是對文件和目錄的抽象表示,該類主要是對目錄和文件進(jìn)行創(chuàng)建、修改、刪除、過濾等操作

File的構(gòu)造器:

File(String pathname) //將路徑字符串實(shí)例化File實(shí)例 File(String parent, String child)// 從父路徑名和子路徑名來構(gòu)建file實(shí)例 File(File parent, String child) //根據(jù)父路徑File實(shí)例和子路徑名來構(gòu)建實(shí)例

絕對路徑和相對路徑

絕對路徑:從盤符開始的路徑,表示一個(gè)完整的路徑 (windows:C:\ linux/mac: / )
相對路徑:不帶盤符的路徑即是相對路徑 "."表示當(dāng)前路徑 “…”表示父路徑

分隔符:

windows分隔符:
mac分割符:/
java中有常量分隔符:File.separator ;//根據(jù)系統(tǒng)不同自動生成對應(yīng)分隔符
例如:String path = “test”+File.separator(分隔符)+“test.txt”;

File常見的方法:

創(chuàng)建:

createNewFile()在指定位置創(chuàng)建一個(gè)空文件,成功就返回true,如果已存在就不創(chuàng)建,然后返回false。mkdir() 在指定位置創(chuàng)建一個(gè)單級文件夾。mkdirs() 在指定位置創(chuàng)建一個(gè)多級文件夾。renameTo(File dest)如果目標(biāo)文件與源文件是在同一個(gè)路徑下,那么renameTo的作用是重命名, 如果目標(biāo)文件與源文件不是在同一個(gè)路徑下,那么renameTo的作用就是剪切,而且還不能操作文件夾。

刪除:

delete() 刪除文件或者一個(gè)空文件夾,不能刪除非空文件夾,馬上刪除文件,返回一個(gè)布爾值。 deleteOnExit()jvm退出時(shí)刪除文件或者文件夾,用于刪除臨時(shí)文件,無返回值。

判斷:

exists() 文件或文件夾是否存在。 isFile() 是否是一個(gè)文件,如果不存在,則始終為false。 isDirectory() 是否是一個(gè)目錄,如果不存在,則始終為false。 isHidden() 是否是一個(gè)隱藏的文件或是否是隱藏的目錄。 isAbsolute() 測試此抽象路徑名是否為絕對路徑名。

獲取:

getName() 獲取文件或文件夾的名稱,不包含上級路徑。 getAbsolutePath()獲取文件的絕對路徑,與文件是否存在沒關(guān)系 length() 獲取文件的大小(字節(jié)數(shù)),如果文件不存在則返回0L,如果是文件夾也返回0L。 getParent() 返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回null。lastModified()獲取最后一次被修改的時(shí)間。

文件夾相關(guān):

static File[] listRoots()列出所有的根目錄(Window中就是所有系統(tǒng)的盤符) list() 返回目錄下的文件或者目錄名,包含隱藏文件。對于文件這樣操作會返回null。 listFiles() 返回目錄下的文件或者目錄對象(File類實(shí)例),包含隱藏文件。對于文件這樣操作會返回null。 list(FilenameFilter filter)返回指定當(dāng)前目錄中符合過濾條件的子文件或子目錄。對于文件這樣操作會返回null listFiles(FilenameFilter filter)返回指定當(dāng)前目錄中符合過濾條件的子文件或子目錄。對于文件這樣操作會返回null。

過濾功能的接口方法:

public interface FilenameFilter {//參數(shù)為目錄和指定過濾名稱//返回結(jié)果 true: 可以返回 false:不能返回boolean accept(File dir, String name); }

舉例:

1.給定指定目錄,將該目錄下的文件按照樹形結(jié)構(gòu)打印

public static void printTree(String filePath) {File head = new File(filePath);if(!head.exists()){//數(shù)據(jù)合法性檢驗(yàn)System.out.println("數(shù)據(jù)不合法");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++){//根據(jù)目錄級別判斷前面空格數(shù)量n = " "+n;}System.out.println(n+file.getName());//如果是文件夾繼續(xù)進(jìn)入查詢if(file.isDirectory()){printTreeRealize(index,file);//遞歸實(shí)現(xiàn)}}}

2.指定起始路徑下包含指定詞的所有文件(非隱藏文件)

//path:指定的查詢路徑 filter關(guān)鍵字public static void searchFile(String path, String filter) {File head = new File(path);if (!head.exists()){//參數(shù)合法性檢驗(yàn)System.out.println("無效文件目錄");return;}searchFile1(head,filter);}public static void searchFile1(File head, String filter) {if(head.isFile()){//是文件if(head.getName().contains(filter)){//關(guān)鍵字匹配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);//遞歸實(shí)現(xiàn)深度查詢}}}

總結(jié)

以上是生活随笔為你收集整理的File类及相关方法介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。