0.2018javase就業(yè)班習(xí)題遞歸、filefilter-答案_第1頁(yè)
0.2018javase就業(yè)班習(xí)題遞歸、filefilter-答案_第2頁(yè)
0.2018javase就業(yè)班習(xí)題遞歸、filefilter-答案_第3頁(yè)
0.2018javase就業(yè)班習(xí)題遞歸、filefilter-答案_第4頁(yè)
0.2018javase就業(yè)班習(xí)題遞歸、filefilter-答案_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基礎(chǔ)題:相對(duì)路徑和絕對(duì)路徑的使用練描述:創(chuàng)建兩個(gè)文件對(duì)象,分別使用相對(duì)路徑和絕對(duì)路徑創(chuàng)建。操作步驟:絕對(duì)路徑創(chuàng)建文件對(duì)象:使用 File 類一個(gè)參數(shù)的構(gòu)造方法。相對(duì)路徑創(chuàng)建文件對(duì)象:使用 File 類兩個(gè)參數(shù)的構(gòu)造方法。代碼:public class Test01_01 public sic void main(String args) / 創(chuàng)建文件對(duì)象:絕對(duì)路徑File f1 = new File(d:/aaa/a.txt);/ 創(chuàng)建文件對(duì)象:相對(duì)路徑File f2 = new File(a.txt);練習(xí)二:檢查文件是否存在,文件的創(chuàng)建描述:檢查D 盤下是否存在文件 a.txt,如果不存在

2、則創(chuàng)建該文件。操作步驟:1. 使用絕對(duì)路徑創(chuàng)建對(duì)象關(guān)聯(lián)到D 盤的 a.txt。2. 通過(guò)文件對(duì)象方法判斷文件是否存在。3. 不存在則調(diào)用創(chuàng)建文件的方法創(chuàng)建文件。代碼:練習(xí)三:單級(jí)文件夾的創(chuàng)建描述:在 D 盤下創(chuàng)建一個(gè)名為 bbb 的文件夾。操作步驟:public class Test01_02 public sic void main(String args) throws IOException/ 創(chuàng)建文件對(duì)象:絕對(duì)路徑File f = new File(d:/a.txt);/ 如果文件不存在,則創(chuàng)建文件if(!f.exists() f.createNewFile();1. 創(chuàng)建文件對(duì)象指定

3、路徑為 d:/bbb2. 調(diào)用文件對(duì)象創(chuàng)建文件夾的方法代碼:練習(xí)四:多級(jí)文件夾的創(chuàng)建描述:在 D 盤下創(chuàng)建一個(gè)名為ccc 的文件夾,要求如下:1.ccc 文件夾中要求包含 bbb 子文件夾2.bbb 子文件夾要求包含 aaa 文件夾:操作步驟:1. 創(chuàng)建文件對(duì)象關(guān)聯(lián)路徑:d:/ccc/bbb/aaa2. 調(diào)用文件對(duì)象創(chuàng)建多級(jí)文件夾的方法代碼:public class Test01_04 public sic void main(String args) / 創(chuàng)建文件對(duì)象File f = new File(d:/ccc/bbb/aaa);/ 創(chuàng)建多級(jí)文件夾f.mkdirs();public cl

4、ass Test01_03 public sic void main(String args) / 創(chuàng)建文件對(duì)象File f = new File(d:/bbb);/ 創(chuàng)建單級(jí)文件夾f.mkdir();練習(xí)五:刪除文件和文件夾描述:將 D 盤下 a.txt 文件刪除將 D 盤下 aaa 文件夾刪除,要求文件夾 aaa 是一個(gè)空文件夾。:操作步驟:1. 創(chuàng)建文件對(duì)象關(guān)聯(lián)路徑:d:/a.txt2. 調(diào)用文件對(duì)象刪除文件的方法3. 創(chuàng)建文件對(duì)象關(guān)聯(lián)路徑:d:/aaa4. 調(diào)用文件對(duì)象刪除文件夾的方法代碼:public class Test01_05 public sic void main(Stri

5、ng args) / 創(chuàng)建文件對(duì)象File f = new File(d:/a.txt);/ 刪除文件f.delete();/ 創(chuàng)建文件夾對(duì)象File dir = new File(d:/aaa);/ 刪除文件夾dir.delete();:獲取文件信息:文件名,文件大小,文件的絕對(duì)路徑,文練件的父路徑描述:獲取 D 盤 aaa 文件夾中 b.txt 文件的文件名,文件大小,文件的絕對(duì)路徑和父路徑等信息,并將信息輸出在控制臺(tái)。:操作步驟:1. 在 D 盤 aaa 文件夾中創(chuàng)建一個(gè) b.txt 文件并輸入數(shù)據(jù)2. 創(chuàng)建文件對(duì)象關(guān)聯(lián)路徑:d:/aaa/b.txt3. 調(diào)用文件對(duì)象的相關(guān)方法獲得信息并

6、輸出??梢酝ㄟ^(guò)API 幫助文檔查詢方法。代碼:public class Test01_06 public sic void main(String args) / 創(chuàng)建文件對(duì)象File f = new File(d:/aaa/b.txt);/ 獲得文件名String filename = f.getName();/ 獲得文件大小longfilesize = f.length();/ 獲得文件的絕對(duì)路徑String path = f.getAbsolutePath();/ 獲得父文件夾路徑,返回字符串String parentPath = f.getParent();/ 獲得父文件夾路徑,返回文

7、件對(duì)象File parentFile = f.getParentFile();/ 輸出信息練習(xí)七:文件夾或文件的判斷描述:1.判斷 File 對(duì)象是否是文件,是文件則輸出:是一個(gè)文件,否則輸出:不是一個(gè)文件。2.判斷 File 對(duì)象是否是文件夾,是文件夾則輸出:是一個(gè)文件夾,否則輸出:不是一個(gè)文件夾。(是文件名或文件夾名):操作步驟:1. 創(chuàng)建兩個(gè)文件對(duì)象分別關(guān)聯(lián)到不同的文件,比如:d:/a.txt,d:/aaa2. 調(diào)用文件對(duì)象的判斷是否是文件或是否是文件夾的方法3. 獲得文件名,根據(jù)判斷結(jié)果輸出信息。代碼:public class Test01_07 public sic void mai

8、n(String args) / 創(chuàng)建文件對(duì)象File f1 = new File(d:/b.txt);/ 判斷是否是一個(gè)文件if(f1.isFile() System.out.prln(f1.getName()+是一個(gè)文件);System.out.prln(文件名: + filename); System.out.prln(文件大?。?+ filesize); System.out.prln(文件路徑: + path);System.out.prln(文件父路徑: + parentPath); System.out.prln(文件父路徑: + parentFile);練習(xí)八:文件夾的獲取方法

9、描述:獲取指定文件夾下所有的文件,并將所有文件的名字輸出到控制臺(tái)。注意:不包含子文件夾下的文件操作步驟:1. 創(chuàng)建文件對(duì)象關(guān)聯(lián)到指定文件夾,比如:c:/aaa2. 調(diào)用文件對(duì)象的 listFiles 方法獲得文件數(shù)組3. 遍歷文件數(shù)組將每一個(gè)文件的名字輸出到控制臺(tái)代碼:public class Test01_08 public sic void main(String args) else System.out.prln(f1.getName()+不是一個(gè)文件);/ 創(chuàng)建文件對(duì)象File f2 = new File(d:/aaaa);/ 判斷是否是一個(gè)文件夾if(f2.isDirectory(

10、) System.out.prln(f2.getName()+是一個(gè)文件夾); else System.out.prln(f2.getName()+不是一個(gè)文件夾);擴(kuò)展題:文件創(chuàng)建、判斷功能、獲取功能練描述:鍵盤錄入一個(gè)文件路徑,根據(jù)文件路徑創(chuàng)建文件對(duì)象,判斷是文件還是文件夾如果是文件,則輸出文件的大小如果是文件夾,則計(jì)算該文件夾下所有文件大小之和并輸出(不包含子文件夾)。操作步驟:1. 創(chuàng)建鍵盤錄入對(duì)象2. 接收鍵盤錄入的字符串路徑3. 根據(jù)字符串路徑創(chuàng)建文件對(duì)象4. 判斷文件對(duì)象是文件還是文件夾,如果是文件,則直接輸出文件大小5. 如果是文件夾,則獲得該文件夾下所有的文件,定義一個(gè)求和變

11、量,遍歷文件數(shù)組獲得每一個(gè)文件的大小并累加到求和變量中,最后輸出求和變量的值。代碼:/ 創(chuàng)建文件對(duì)象File f = new File(d:/aaa);/ 獲得文件夾下所有文件File files = f.listFiles();/ 遍歷文件數(shù)組for (File file :files) / 將文件的名字打印到控制臺(tái)System.out.prln(file.getName();public class Test02_01 public sic void main(String args) / 創(chuàng)建鍵盤錄入對(duì)象Scanner sc = new Scanner(System.in);/ 提示用戶

12、輸入一個(gè)文件路徑System.out.prln(請(qǐng)輸入一個(gè)文件路徑:);/ 接收用戶輸入的文件路徑String filePath = sc.nextLine();/ 根據(jù)文件路徑創(chuàng)建文件對(duì)象File file = new File(filePath);/ 判斷是否是文件if(file.isFile() / 輸出文件大小System.out.prln(文件大小為:+file.length();else / 是文件夾/ 定義變量統(tǒng)計(jì)文件大小之和longlength = 0;/ 獲得該文件夾下的所有文件File files = file.listFiles();/ 遍歷文件數(shù)組for (File f

13、 :files) if(f.isFile() / 累加文件大小length += f.length();練習(xí)二:遞歸的使用(一)描述:用遞歸實(shí)現(xiàn)不死神兔故事得從西元 1202 年說(shuō)起,話說(shuō)有一位意大利青年,名叫。在他的一部著作中提出了一個(gè)有趣:假設(shè)一對(duì)剛出生的小兔一個(gè)月后就能長(zhǎng)成大兔,再過(guò)一個(gè)月就能生下一對(duì)小兔,并且此后每個(gè)月都生一對(duì)小兔,沒(méi)有發(fā)生,問(wèn):現(xiàn)有一對(duì)剛出生的兔子 2 年后(24 個(gè)月)會(huì)有多少對(duì)兔子?解題思路:用遞歸法求數(shù)列第 n 項(xiàng)數(shù)列,又稱黃金分割數(shù)列,指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、這個(gè)數(shù)列大家很容易的就推算出來(lái)后面好幾項(xiàng)的值,那么到底兩項(xiàng)的和是第三項(xiàng)

14、的值規(guī)律,簡(jiǎn)單說(shuō),就是前代碼:import java.util.Scanner;public class Test02_02 public sic void main(String args) / 鍵盤輸入并接收/ 輸出文件夾文件的總大小System.out.prln(文件總大小為: + length);練習(xí)三:遞歸的使用(二)描述:猴子吃桃子問(wèn)題,猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了快一半,還不過(guò)癮,又多吃了一個(gè)。第二天又將僅剩下的桃子了一半,又多吃了一個(gè)。以后每天都吃了前一天剩下的一半多一個(gè)。到第十天,只剩下一個(gè)桃子。試求第一天共摘了多少桃子?解題思路:采用逆向思維,從后往前推斷,發(fā)現(xiàn)其中有

15、相同的地方,即出現(xiàn)遞推公式,可以采用遞歸方法。令 S10=1,容易看出 S9=2(S10+1),簡(jiǎn)化一下S9=2S10+2S8=2S9+2.Scanner sc = new Scanner(System.in); n = sc.next();/ 調(diào)用遞歸方法并打印System.out.prln(fun(n);public sicfun(n) / 判斷如果是第 1 個(gè)或者第 2 個(gè)月就返回 1 if (n = 1 | n = 2) return 1; else / 如果是第 3 個(gè)月就返回前兩個(gè)月的值return fun(n - 1) + fun(n - 2);Sn=2S(n+1)+2代碼:練習(xí)

16、四:文件過(guò)濾器的使用描述:獲得指定文件夾下所有的 java 文件(不考慮子文件夾的)并輸出到控制臺(tái)操作步驟:public class Test02_03 public sic void main(String args) / 定義桃子數(shù)量調(diào)用遞歸方法sum = sumPeach(1);/ 調(diào)用遞歸函數(shù)并打印System.out.prln(sum);public sicsumPeach(day) / 判斷如果是第 10 天就返回 1 if (day = 10) return 1; else / 遞歸計(jì)算前一天的數(shù)量return 2 * sumPeach(day + 1) + 2;1. 創(chuàng)建一個(gè)類

17、實(shí)現(xiàn)文件過(guò)濾器 FileFilter 接口并重新 accept 方法,在該方法根據(jù)傳入的文件判斷是否文件 Java 文件,如果是則返回 true,否則返回 false。2. 根據(jù)文件夾路徑字符串創(chuàng)建文件對(duì)象和創(chuàng)建文件過(guò)濾器接口實(shí)現(xiàn)類對(duì)象3. 調(diào)用文件對(duì)象的 listFiles(FileFilter f) 方法,傳遞文件過(guò)濾器實(shí)現(xiàn)類對(duì)象。4. 遍歷文件數(shù)組,輸入每一個(gè)文件對(duì)象代碼:練習(xí)五:文件和文件夾刪除描述:鍵盤錄入一個(gè)文件夾路徑,刪除該文件夾以及文件夾路徑下的所有文件。要求:錄入的文件夾里面要有多個(gè)文件,不能包含有子文件夾。public class Test02_04 public sic

18、void main(String args) / 創(chuàng)建文件夾對(duì)象File file= new File(d:/aaa);/ 獲得該文件夾下的所有 java 文件File files = file.listFiles(new FileFilter() publicaccept(File pathname) / 判斷文件后綴名是否.java 文件if (pathname.getName().endsWith(.java) return true; else return false;);/遍歷文件數(shù)組,打印所有的 Java 文件路徑for (File f : files) System.out.p

19、rln(f.getAbsolutePath();提示:如果文件夾里面有文件,則需要先將文件刪除才能刪除文件夾。操作步驟:1. 創(chuàng)建鍵盤錄入對(duì)象 Scanner2. 定義字符串接收用戶輸入的文件夾路徑3. 根據(jù)文件夾路徑創(chuàng)建文件對(duì)象4. 調(diào)用文件對(duì)象的 listFiles 方法獲得文件數(shù)組5. 遍歷文件數(shù)組,刪除每一個(gè)文件6. 最后調(diào)用刪除方法刪除文件夾。代碼:public class Test02_05 public sic void main(String args) / 創(chuàng)建鍵盤錄入對(duì)象Scanner sc = new Scanner(System.in);/ 提示用戶輸入一個(gè)文件路徑Sy

20、stem.out.prln(請(qǐng)輸入一個(gè)文件夾路徑:);/ 接收用戶輸入的文件夾路徑String dirPath = sc.nextLine();/ 根據(jù)文件夾路徑創(chuàng)建文件對(duì)象File dir = new File(dirPath);/ 獲得該文件夾下的所有文件File files = dir.listFiles();/ 遍歷文件數(shù)組刪除每一個(gè)文件for (File file :files) / 刪除文件file.delete();:文件獲取方法,遞歸的使用練描述:從鍵盤接收一個(gè)文件夾路徑,獲得該文件夾大小并輸出到控制臺(tái)。操作步驟:1. 創(chuàng)建鍵盤錄入對(duì)象 Scanner2. 定義字符串接收用戶輸入的文件夾路徑3. 根據(jù)文件夾路徑創(chuàng)建文件對(duì)象4. 定義一個(gè)方法 calculate 用來(lái)計(jì)算指定文件夾的大小,接收文件參數(shù),返回 long 類型數(shù)值表示文件夾的大小。5. 調(diào)用 calculate 方法傳入文件夾對(duì)象,在該方法獲得文件

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論