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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

File类、递归

發布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 File类、递归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

目錄

一、File類

1.File類的作用

2.File類的構造

3.相對路徑和絕對路徑的概念

4.獲取方法

5.判斷方法

6.創建刪除方法

7.遍歷目錄的方法(*****)

二、遞歸

1.什么是遞歸?

2.目錄搜索案例

3.批量修改文件名案例

4.獲取文件夾大小案例

5.猴子吃桃子問題

6.斐波那契數列


一、File類

1.File類的作用

java.io.File 類是文件和目錄路徑名的抽象表示,主要用于文件和目錄的創建、查找和刪除等操作。

2.File類的構造

public File(String pathname)

public File(String parent, String child)

public File(File parent, String child)

注意:

1. 一個File對象代表硬盤中實際存在的一個文件或者目錄。

2. 無論該路徑下是否存在文件或者目錄,都不影響File對象的創建。

3.相對路徑和絕對路徑的概念

絕對路徑:從盤符開始的路徑,這是一個完整的路徑。

相對路徑:相對于項目目錄的路徑,這是一個便捷的路徑,開發中經常使用。

4.獲取方法

public String getAbsolutePath() :返回此File的絕對路徑名字符串。

public String getPath() :返回此File的路徑名字符串。(只能獲取文件的大小,對于文件夾來說大小是不確定的

public String getName() :返回由此File表示的文件或目錄的名稱。

public long length() :返回由此File表示的文件的長度。

5.判斷方法

public boolean exists() :此File表示的文件或目錄是否實際存在。

public boolean isDirectory() :此File表示的是否為目錄。

public boolean isFile() :此File表示的是否為文件。

在開發中必須先判斷是否存在,在判斷是否是文件夾或文件

6.創建刪除方法

public boolean createNewFile() :當且僅當具有該名稱的文件尚不存在時,創建一個新的空文件。

public boolean delete() :刪除由此File表示的文件或目錄。(文件夾里面有文件時無法刪除)

public boolean mkdir() :創建由此File表示的目錄。

public boolean mkdirs() :創建由此File表示的目錄,包括任何必需但不存在的父目錄。

7.遍歷目錄的方法(*****)

public String[] list() :返回一個String數組,表示該File目錄中的所有子文件或目錄。

public File[] listFiles() :返回一個File數組,表示該File目錄中的所有的子文件或目錄。

二、遞歸

1.什么是遞歸?

在方法內部調用自己

2.目錄搜索案例

public static void main(String[] args) {File file = new File("F:/黑馬程序員");searchFile(file, "txt"); }public static void searchFile(File file, String name) {//參數非空判斷Objects.requireNonNull(file);Objects.requireNonNull(name);//方式1:匿名內部類/*File[] files = file.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {return pathname.getName().endsWith("." + name)||pathname.isDirectory();}});*///方式2:Lanbda表達式if (file.exists()) {File[] files = file.listFiles((pathname) -> {return pathname.getName().endsWith("." + name)|| pathname.isDirectory();});//遞歸調用for (File f : files) {if (f.isDirectory()) {searchFile(f, name);} else {//打印文件名System.out.println(f.getName());}}} }

3.批量修改文件名案例

File file = new File("F:/黑馬程序員/就業班/day08-File類、遞歸/文件重命名案例"); if(file.exists()){File[] files = file.listFiles();for (File file1 : files) {String filename = file1.getName();int i = filename.indexOf("_");int y = filename.lastIndexOf("_");filename = filename.substring(i + 1, i + 4) +filename.substring(y + 1);System.out.println(file1.renameTo(new File(file, filename)));} }

4.獲取文件夾大小案例

描述:從鍵盤接收一個文件夾路徑,獲得該文件夾大小并輸出到控制臺。

public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請輸入文件夾路徑");String fileName = sc.next();File f = new File(fileName);System.out.println(getFileSize(f));}public static long getFileSize(File file) {long length = 0;Objects.requireNonNull(file);if (file.exists()) {File[] files = file.listFiles();for (File file1 : files) {if (file1.isDirectory()) {length += getFileSize(file1);} else {length += file1.length();}}return length;} else {return 0;}}

5.猴子吃桃子問題

描述:猴子吃桃子問題,猴子第一天摘下若干個桃子,當即吃了快一半,還不過癮,又多吃了一個。 第二天又將僅剩下的桃子吃掉了一半,又多吃了一個。以后每天都吃了前一天剩下的一半多一個。 到第十天,只剩下一個桃子。試求第一天共摘了多少桃子? //1534 public static void main(String[] args) {System.out.println(getNum(10));}public static int getNum(int n){if(n==1){return 1;}else{return (getNum(n-1)+1)*2;}}

6.斐波那契數列

描述:

用遞歸實現不死神兔

故事得從西元1202年說起,話說有一位意大利青年,名叫斐波那契。

在他的一部著作中提出了一個有趣的問題:假設一只剛出生的小兔一個月后就能長成大兔,

再過一個月(也就是第三個月)就能生下一只小兔,并且此后每個月都生一只小兔,沒有發生死亡,

問:現有一只剛出生的兔子2年后(24個月)會有多少只兔子?

分析:

從第一個兔子開始,第1個月1只兔子,由于長到第三個月后每個月又生一只兔子,所以第2個月也是1只兔子,第3個月時可以生一只兔子,所以總數為2只,這時,其中有一只是以后每個月都可以生一只兔子的老兔子,另一只是一只新兔子,它只有在第三個月的時候才可以每個月生一只兔子;這樣的話,第4個月的兔子總數為3只,…以此類推,從第1個月到第24個月的兔子總數分別為:1,1,2,3,5,8,13,21,34,55,89,144...

public static void main(String[] args) {for (int i = 1; i <= 15; i++) {System.out.println(getNum(i));}}public static int getNum(int month){if(month==1||month==2){return 1;}else{return getNum(month-2)+getNum(month-1);}}

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的File类、递归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。