版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
一、多線程應(yīng)用GUI線程1.GUI線程當(dāng)Java程序中包含圖形界面時,Java虛擬機(jī)在運行應(yīng)用程序時會啟動更多的線程,其中有兩個重要的線程:AWT-EventQuecue:負(fù)責(zé)處理GUI事件AWT-Windows:負(fù)責(zé)將窗體或組件繪制到桌面2.ScrollWordsAndTimer.java本例中是一個帶滾動字幕的小時鐘,單擊“開始顯示時間”在文本框中顯示系統(tǒng)當(dāng)前時間;單擊“停止時間顯示”,時間顯示就停止?jié)L動的字幕在單擊“加速”鍵后,會加速字幕的滾動速度;單擊“停止“后,會停止?jié)L動單擊”開始“后,文字會重新開始滾動一、多線程應(yīng)用GUI線程1.GUI線程一、多線程應(yīng)用GUI線程2.ScrollWordsAndTimer.java讀程序,回答問題:本例中的兩個線程都是在哪里被創(chuàng)建和啟動的?標(biāo)志位stopScrolling,stopTimer的作用是什么?文字是如何實現(xiàn)滾動的?加速滾動是如何實現(xiàn)的?單擊“停止?jié)L動”按鈕后,文字的滾動是如何停止的?單擊“開始滾動”后又是如何實現(xiàn)滾動的?為什么在單擊按鈕startWordsBtn以后,判定線程已經(jīng)進(jìn)入死亡狀態(tài)后,才給線程分配新的實體?而且需要將startWordsBtn設(shè)置為不可用?一、多線程應(yīng)用GUI線程2.ScrollWordsAndT三、多線程應(yīng)用GUI線程2.ScrollWordsAndTimer.java讀程序,回答問題:為什么在單擊按鈕startWordsBtn以后,判定線程已經(jīng)進(jìn)入死亡狀態(tài)后,才給線程分配新的實體?而且需要將startWordsBtn設(shè)置為不可用?一個已經(jīng)運行的線程在沒有進(jìn)入死亡狀態(tài)之前,不能給它分配新的實體,否則會拋出IllegalThreadStateException;而當(dāng)通過單擊一個按鈕讓一個線程運行時,在這個線程執(zhí)行完run()方法之前,用戶可能會隨時再次單擊該按鈕,這時也會引發(fā)IllegalThreadStateException,所以可以在單擊startWordsBtn按鈕后,將其設(shè)為不可用。三、多線程應(yīng)用GUI線程2.ScrollWordsAndT二、習(xí)題講解1、三角形面積二、習(xí)題講解1、三角形面積二、習(xí)題講解1、三角形面積—關(guān)鍵代碼文本框內(nèi)容發(fā)生變化時觸發(fā)CaretListener偵聽器,對文本框中輸入文本進(jìn)行格式檢查二、習(xí)題講解1、三角形面積—關(guān)鍵代碼文本框內(nèi)容發(fā)生變化時觸發(fā)二、習(xí)題講解2、簡易計算器—關(guān)鍵代碼二、習(xí)題講解2、簡易計算器—關(guān)鍵代碼三、第四章案例介紹1、英文測試系統(tǒng)完成一個英文練習(xí)小系統(tǒng),每當(dāng)用戶做完一個題目之后,就判定分?jǐn)?shù),單擊“下一題目”按鈕,就再讀入一個題目,當(dāng)做完全部的題目后,通知用戶練習(xí)已經(jīng)完成;當(dāng)單擊“重新練習(xí)”時,程序從第一個題目開始重新開始練習(xí)。編程要求:①要求完成圖形界面的設(shè)計與編寫。②將練習(xí)題及其選項存儲在一個文本文件中,每次從中讀取一個題目的信息顯示在JFrame框架中。③
每當(dāng)用戶做完一個題目之后,就判定分?jǐn)?shù);然后用戶可以繼續(xù)做下一個題目。
三、第四章案例介紹1、英文測試系統(tǒng)完成一個英文練習(xí)小系統(tǒng),每三、第四章案例介紹1、英文測試系統(tǒng)1)界面設(shè)計public
classEnglishExerciseextendsJFrameimplementsActionListener{類數(shù)據(jù)成員的定義:圖形界面中用到的各種組件的定義構(gòu)造方法:EnglishExercise()方法}JTextField,JButton,JLabel,JRadioButton等組件的實例化設(shè)置JFrame布局方式,合理放置各個組件給相關(guān)組件添加事件監(jiān)聽器設(shè)置JFrame的可見性,大小和關(guān)閉按鈕時的動作main方法:newEnglishExercise();定義4個JPanel面板,將相關(guān)組件加到JPanel上三、第四章案例介紹1、英文測試系統(tǒng)publicclass三、第四章案例介紹1、英文測試系統(tǒng)1)界面設(shè)計三、第四章案例介紹1、英文測試系統(tǒng)三、第四章案例介紹1、英文測試系統(tǒng)2)流程設(shè)計三、第四章案例介紹1、英文測試系統(tǒng)public
classEnglishExerciseextendsJFrameimplementsActionListener{類數(shù)據(jù)成員的定義:圖形界面中用到的各種組件的定義,存放練習(xí)題的相關(guān)文件及流對象的定義,ArrayList對象的定義,得分score的定義構(gòu)造方法:EnglishExercise()方法JTextField,JButton,JLabel,JRadioButton等組件的實例化,給相關(guān)組件添加事件監(jiān)聽器,設(shè)置JFrame布局方式,合理放置各個組件,設(shè)置JFrame的可見性,大小和關(guān)閉按鈕時的動作實例化文件字符流對象fin和緩沖式字符輸入流bin調(diào)用readQuestionFromeFile()方法從題庫文件中讀取第一個練習(xí)題,并將問題部分和選擇題選項部分分別顯示在JFrame框架中三、第四章案例介紹publicclassEnglishExerciseepublic
classEnglishExerciseextendsJFrameimplementsActionListener{……readQuestionFromeFile()方法:從題庫文件中讀取練習(xí)題方法,并將問題部分和選擇題選項部分顯示在JFrame框架中strReadLine=bin.readLine();//讀取題庫源文件的一行如果讀取出來的一行字符串不是"endend",表示還沒有讀取結(jié)束,用分隔符“#”構(gòu)造字符串記號處理器對象token,用分隔符“#”來分隔字符串strReadLine,并將子串存放在array中將array中的題目和選項分別顯示在JFrame的相應(yīng)組件中三、第四章案例介紹publicclassEnglishExerciseepublic
classEnglishExerciseextendsJFrameimplementsActionListener{……readQuestionFromeFile()方法:從題庫文件中讀取練習(xí)題方法,并將問題部分和選擇題選項部分顯示在JFrame框架中三、第四章案例介紹Shecutclothwith___asissors#acouple#apairof#two#a#apairof#array(0)array(1)array(2)array(3)array(4)array(5)publicclassEnglishExerciseepublic
classEnglishExerciseextendsJFrameimplementsActionListener{……三、第四章案例介紹}actionPerformed()方法:動作事件處理方法如果觸發(fā)動作事件的是“重新練習(xí)”命令按鈕startBtn,將分?jǐn)?shù)score置為0,并顯示在分?jǐn)?shù)文本框中;打開讀取題庫文件的輸入流;從題庫文件中讀取第一個練習(xí)題,并將問題部分和選擇題選項部分顯示在JFrame框架的相應(yīng)組件中如果觸發(fā)動作事件的是“下一題目”命令按鈕nextBtn,從題庫文件中讀取下一個練習(xí)題,并將問題部分和選擇題選項部分顯示在JFrame框架中如果觸發(fā)動作事件的是四個單選按鈕之一radionBtn[i],如果用戶單擊了一個單選按鈕并且單擊了正確的選項,則score=score+1;將所有的單選按鈕設(shè)置為不可用狀態(tài)publicclassEnglishExercisee1)什么是File類四、文件類File在Java語言中,用File類表示文件,F(xiàn)ile類可以處理各種文件操作。主要用來獲取文件本身的一些信息,如文件所在的目錄、長度和文件的讀寫權(quán)限等。Java的File類也可表示目錄。文件相關(guān)的一個重要概念是目錄,在Java中并不存在一個對應(yīng)于目錄的類。實際上,不論是在Windows系統(tǒng)還是UNIX系統(tǒng)中,都將目錄是為一種特殊的文件。1)什么是File類四、文件類File在Java語言中,用F2)創(chuàng)建File對象四、文件類File1)publicFile(Stringpath);如果path是實際存在的路徑,則該File對象表示的是目錄;如果path是文件名,則該File對象表示的是文件。Filefile=newFile("src/chap09/face1(new).gif");為了加強程序的通用性,建議采用相對路徑,不要采用絕對路徑。2)publicFile(Stringpath,Stringname);path是路徑名,name是文件名。3)publicFile(Filedir,Stringname);dir是路徑名,name是文件名。2)創(chuàng)建File對象四、文件類File1)publicFi3)文件名的處理方法四、文件類File1)StringgetName():得到一個文件的名稱(不包括路徑)。2)StringgetPath():得到一個文件的路徑名。3)StringgetAbsolutePath():得到一個文件的絕對路徑名。4)StringgetParent():得到一個文件的上一級目錄名。5)StringrenameTo(FilenewName):將當(dāng)前文件名更名為給定的文件名。3)文件名的處理方法四、文件類File1)Stringge4)文件屬性測試四、文件類File1)booleanexists():測試當(dāng)前File對象所指示的文件是否在操作系統(tǒng)中存在。2)booleancanWrite():測試當(dāng)前文件是否可寫。3)booleancanRead():測試當(dāng)前文件是否可讀。4)booleanisFile():測試當(dāng)前文件是否是文件(不是目錄)。5)booleanisDirectory():測試當(dāng)前文件是否是目錄。4)文件屬性測試四、文件類File1)booleanexi5)目錄方法四、文件類File1)booleanmkdir():根據(jù)當(dāng)前對象生成一個由該對象指定的文件夾2)Stringlist():列出當(dāng)前目錄下的文件5)目錄方法四、文件類File1)booleanmkdir5)例題1-TestOfFileProperty.java四、文件類File題目要求:測試src/chap09/EnglishExercise.java的各種屬性。思路建立File對象調(diào)用File類的響應(yīng)方法輸出File對象的各種屬性運行界面截圖5)例題1-TestOfFileProperty.java四5)例題1-TestOfFileProperty.java四、文件類File題目要求:測試src/chap09/EnglishExercise.java的各種屬性。關(guān)鍵代碼建立File對象
Filefile1=newFile("D:/ourworkspace/CasesOfProgramming/src/chap09","EnglishExercise.java");Filefile2=newFile("D:\\ourworkspace\\CasesOfProgramming\\src\\chap09");調(diào)用File對象的方法輸出文件的各種屬性System.out.println("文件EnglishExercise是可讀的嗎:"+file1.canRead());System.out.println("文件EnglishExercise的長度:"+file1.length());System.out.println("文件EnglishExercise的絕對路徑:"+file1.getAbsolutePath());System.out.println("文件chap09是目錄嗎?"+file2.isDirectory());5)例題1-TestOfFileProperty.java四6)File類需要注意的問題:四、文件類File1.File類的構(gòu)造方法沒有創(chuàng)建一個文件或文件夾的功能調(diào)用File類構(gòu)造方法時,僅僅是以某個文件名或者目錄名為參數(shù),在程序運行環(huán)境中創(chuàng)建了一個File對象,而不是在文件系統(tǒng)中創(chuàng)建了一個新文件。File對象可以表示文件系統(tǒng)中對應(yīng)的目錄或文件,也可以表示在文件系統(tǒng)中尚不存在的目錄或文件。如:Filefile1=newFile( "D://ourworkspace//CasesOfProgramming//src//chap09", "Exercise.java");即使Exercise.java文件不存在,這個構(gòu)造方法也會創(chuàng)建一個File對象。但不會在系統(tǒng)指定目錄中創(chuàng)建文件名為Exercise.java的新文件。6)File類需要注意的問題:四、文件類File1.File6)File類需要注意的問題:四、文件類File1.File類的構(gòu)造方法沒有創(chuàng)建一個文件或文件夾的功能問題:在程序中應(yīng)該如何創(chuàng)建一個新文件?方法一:調(diào)用File對象的方法CreateNewFile(); try{ if(!file1.exists()){ file1.createNewFile(); } }catch(IOExceptione){}方法二:以File對象為參數(shù)來調(diào)用FileOutputStream的構(gòu)造方法來創(chuàng)建對象Fout時,如果創(chuàng)建File對象的文件名不存在,它可以在指定的目錄下創(chuàng)建這個新文件。FiledstFile=newFile("src/chap09/face1(new).gif");FileOutputStreamfout=newFileOutputStream(dstFile);6)File類需要注意的問題:四、文件類File1.File6)File類需要注意的問題:四、文件類File2.程序中文件目錄的表示問題一、使用絕對路徑1)使用Windows環(huán)境中的反斜杠“\”來表示一個路徑表達(dá)式。
Filefile1=newFile( "D:\\ourworkspace\\CasesOfProgramming\\src\\chap09", "EnglishExercise.java");2)使用UNIX環(huán)境中的正斜杠“/”來表示一個路徑表達(dá)式Filefile1=newFile("D://ourworkspace//CasesOfProgramming//src//chap09", "EnglishExercise.java");6)File類需要注意的問題:四、文件類File2.程序中文6)File類需要注意的問題:四、文件類File2.程序中文件目錄的表示問題一、使用絕對路徑3)直接使用沒有轉(zhuǎn)義處理正斜杠“/”來表示一個路徑表達(dá)式。
Filefile1=newFile("D:/ourworkspace/CasesOfProgramming/src/chap09","EnglishExercise.java");2)和3)這兩種正斜杠的表達(dá)方式在Windows環(huán)境中是允許的,但是當(dāng)程序被移植到其他類型的操作系統(tǒng)中的時候,這種使用正斜杠的表達(dá)方式可能就無法通過編譯了,所以這種路徑表達(dá)方式盡量不要使用。
6)File類需要注意的問題:四、文件類File2.程序中文6)File類需要注意的問題:四、文件類File2.程序中文件目錄的表示問題二、使用相對路徑1)以整個工程文件根目錄的相對目錄來表示一個文件Filefile1=newFile("src//chap09","EnglishExercise.java");Filefile1=newFile("src//chap09//EnglishExercise.java");2)使用File類的靜態(tài)實例域:seperator,這個域中保存著當(dāng)前目錄分隔符的相關(guān)信息。
Filefile1=newFile("src"+File.separator+"chap09","EnglishExercise.java");如果不能保證目錄分隔符到底是反斜杠“\”還是正斜杠“/”,用File.separator來表達(dá)一個目錄更有利于程序在不同操作系統(tǒng)之間的移植。6)File類需要注意的問題:四、文件類File2.程序中文6)File類需要注意的問題:四、文件類File2.程序中文件目錄的表示問題三、使用系統(tǒng)的環(huán)境參數(shù)來構(gòu)造文件路徑1)System.getProperty()方法可以取得很多我們經(jīng)常要用到的環(huán)境參數(shù)。StringuserDir=System.getProperty("user.dir");Filefile1=newFile(userDir+File.separator+"src"+File.separator+"chap09","EnglishExercise.java");user.dir-------------用戶的當(dāng)前工作目錄
D:\ourworkspace\CasesOfProgramming6)File類需要注意的問題:四、文件類File2.程序中文6)File類需要注意的問題:四、文件類File2.程序中文件目錄的表示問題四、取得Java運行時.class文件所在目錄方法Filefile1=newFile(
this.getClass().getResource("").getPath(),
"EnglishExercise.class");System.out.println("文件EnglishExercise的絕對路徑:"+file1.getAbsolutePath());輸出結(jié)果:文件EnglishExercise的絕對路徑:D:\ourworkspace\CasesOfProgramming\bin\chap09\EnglishExercise.class6)File類需要注意的問題:四、文件類File2.程序中文五、小結(jié)和作業(yè)作業(yè)11.ScrollWordsAndTimer.java讀程序,回答問題:本例中的兩個線程都是在哪里被創(chuàng)建和啟動的?標(biāo)志位stopScrolling,stopTimer的作用是什么?文字是如何實現(xiàn)滾動的?加速滾動是如何實現(xiàn)的?單擊“停止?jié)L動”按鈕后,文字的滾動是如何停止的?單擊“開始滾動”后又是如何實現(xiàn)滾動的?為什么在單擊按鈕startWordsBtn以后,判定線程已經(jīng)進(jìn)入死亡狀態(tài)后,才給線程分配新的實體?而且需要將startWordsBtn設(shè)置為不可用?五、小結(jié)和作業(yè)作業(yè)11.ScrollWordsAndTim五、小結(jié)和作業(yè)作業(yè)2上機(jī)運行案例:EnglishExercise.java編程練習(xí):詳見實驗指導(dǎo)書五、小結(jié)和作業(yè)作業(yè)2一、多線程應(yīng)用GUI線程1.GUI線程當(dāng)Java程序中包含圖形界面時,Java虛擬機(jī)在運行應(yīng)用程序時會啟動更多的線程,其中有兩個重要的線程:AWT-EventQuecue:負(fù)責(zé)處理GUI事件AWT-Windows:負(fù)責(zé)將窗體或組件繪制到桌面2.ScrollWordsAndTimer.java本例中是一個帶滾動字幕的小時鐘,單擊“開始顯示時間”在文本框中顯示系統(tǒng)當(dāng)前時間;單擊“停止時間顯示”,時間顯示就停止?jié)L動的字幕在單擊“加速”鍵后,會加速字幕的滾動速度;單擊“停止“后,會停止?jié)L動單擊”開始“后,文字會重新開始滾動一、多線程應(yīng)用GUI線程1.GUI線程一、多線程應(yīng)用GUI線程2.ScrollWordsAndTimer.java讀程序,回答問題:本例中的兩個線程都是在哪里被創(chuàng)建和啟動的?標(biāo)志位stopScrolling,stopTimer的作用是什么?文字是如何實現(xiàn)滾動的?加速滾動是如何實現(xiàn)的?單擊“停止?jié)L動”按鈕后,文字的滾動是如何停止的?單擊“開始滾動”后又是如何實現(xiàn)滾動的?為什么在單擊按鈕startWordsBtn以后,判定線程已經(jīng)進(jìn)入死亡狀態(tài)后,才給線程分配新的實體?而且需要將startWordsBtn設(shè)置為不可用?一、多線程應(yīng)用GUI線程2.ScrollWordsAndT三、多線程應(yīng)用GUI線程2.ScrollWordsAndTimer.java讀程序,回答問題:為什么在單擊按鈕startWordsBtn以后,判定線程已經(jīng)進(jìn)入死亡狀態(tài)后,才給線程分配新的實體?而且需要將startWordsBtn設(shè)置為不可用?一個已經(jīng)運行的線程在沒有進(jìn)入死亡狀態(tài)之前,不能給它分配新的實體,否則會拋出IllegalThreadStateException;而當(dāng)通過單擊一個按鈕讓一個線程運行時,在這個線程執(zhí)行完run()方法之前,用戶可能會隨時再次單擊該按鈕,這時也會引發(fā)IllegalThreadStateException,所以可以在單擊startWordsBtn按鈕后,將其設(shè)為不可用。三、多線程應(yīng)用GUI線程2.ScrollWordsAndT二、習(xí)題講解1、三角形面積二、習(xí)題講解1、三角形面積二、習(xí)題講解1、三角形面積—關(guān)鍵代碼文本框內(nèi)容發(fā)生變化時觸發(fā)CaretListener偵聽器,對文本框中輸入文本進(jìn)行格式檢查二、習(xí)題講解1、三角形面積—關(guān)鍵代碼文本框內(nèi)容發(fā)生變化時觸發(fā)二、習(xí)題講解2、簡易計算器—關(guān)鍵代碼二、習(xí)題講解2、簡易計算器—關(guān)鍵代碼三、第四章案例介紹1、英文測試系統(tǒng)完成一個英文練習(xí)小系統(tǒng),每當(dāng)用戶做完一個題目之后,就判定分?jǐn)?shù),單擊“下一題目”按鈕,就再讀入一個題目,當(dāng)做完全部的題目后,通知用戶練習(xí)已經(jīng)完成;當(dāng)單擊“重新練習(xí)”時,程序從第一個題目開始重新開始練習(xí)。編程要求:①要求完成圖形界面的設(shè)計與編寫。②將練習(xí)題及其選項存儲在一個文本文件中,每次從中讀取一個題目的信息顯示在JFrame框架中。③
每當(dāng)用戶做完一個題目之后,就判定分?jǐn)?shù);然后用戶可以繼續(xù)做下一個題目。
三、第四章案例介紹1、英文測試系統(tǒng)完成一個英文練習(xí)小系統(tǒng),每三、第四章案例介紹1、英文測試系統(tǒng)1)界面設(shè)計public
classEnglishExerciseextendsJFrameimplementsActionListener{類數(shù)據(jù)成員的定義:圖形界面中用到的各種組件的定義構(gòu)造方法:EnglishExercise()方法}JTextField,JButton,JLabel,JRadioButton等組件的實例化設(shè)置JFrame布局方式,合理放置各個組件給相關(guān)組件添加事件監(jiān)聽器設(shè)置JFrame的可見性,大小和關(guān)閉按鈕時的動作main方法:newEnglishExercise();定義4個JPanel面板,將相關(guān)組件加到JPanel上三、第四章案例介紹1、英文測試系統(tǒng)publicclass三、第四章案例介紹1、英文測試系統(tǒng)1)界面設(shè)計三、第四章案例介紹1、英文測試系統(tǒng)三、第四章案例介紹1、英文測試系統(tǒng)2)流程設(shè)計三、第四章案例介紹1、英文測試系統(tǒng)public
classEnglishExerciseextendsJFrameimplementsActionListener{類數(shù)據(jù)成員的定義:圖形界面中用到的各種組件的定義,存放練習(xí)題的相關(guān)文件及流對象的定義,ArrayList對象的定義,得分score的定義構(gòu)造方法:EnglishExercise()方法JTextField,JButton,JLabel,JRadioButton等組件的實例化,給相關(guān)組件添加事件監(jiān)聽器,設(shè)置JFrame布局方式,合理放置各個組件,設(shè)置JFrame的可見性,大小和關(guān)閉按鈕時的動作實例化文件字符流對象fin和緩沖式字符輸入流bin調(diào)用readQuestionFromeFile()方法從題庫文件中讀取第一個練習(xí)題,并將問題部分和選擇題選項部分分別顯示在JFrame框架中三、第四章案例介紹publicclassEnglishExerciseepublic
classEnglishExerciseextendsJFrameimplementsActionListener{……readQuestionFromeFile()方法:從題庫文件中讀取練習(xí)題方法,并將問題部分和選擇題選項部分顯示在JFrame框架中strReadLine=bin.readLine();//讀取題庫源文件的一行如果讀取出來的一行字符串不是"endend",表示還沒有讀取結(jié)束,用分隔符“#”構(gòu)造字符串記號處理器對象token,用分隔符“#”來分隔字符串strReadLine,并將子串存放在array中將array中的題目和選項分別顯示在JFrame的相應(yīng)組件中三、第四章案例介紹publicclassEnglishExerciseepublic
classEnglishExerciseextendsJFrameimplementsActionListener{……readQuestionFromeFile()方法:從題庫文件中讀取練習(xí)題方法,并將問題部分和選擇題選項部分顯示在JFrame框架中三、第四章案例介紹Shecutclothwith___asissors#acouple#apairof#two#a#apairof#array(0)array(1)array(2)array(3)array(4)array(5)publicclassEnglishExerciseepublic
classEnglishExerciseextendsJFrameimplementsActionListener{……三、第四章案例介紹}actionPerformed()方法:動作事件處理方法如果觸發(fā)動作事件的是“重新練習(xí)”命令按鈕startBtn,將分?jǐn)?shù)score置為0,并顯示在分?jǐn)?shù)文本框中;打開讀取題庫文件的輸入流;從題庫文件中讀取第一個練習(xí)題,并將問題部分和選擇題選項部分顯示在JFrame框架的相應(yīng)組件中如果觸發(fā)動作事件的是“下一題目”命令按鈕nextBtn,從題庫文件中讀取下一個練習(xí)題,并將問題部分和選擇題選項部分顯示在JFrame框架中如果觸發(fā)動作事件的是四個單選按鈕之一radionBtn[i],如果用戶單擊了一個單選按鈕并且單擊了正確的選項,則score=score+1;將所有的單選按鈕設(shè)置為不可用狀態(tài)publicclassEnglishExercisee1)什么是File類四、文件類File在Java語言中,用File類表示文件,F(xiàn)ile類可以處理各種文件操作。主要用來獲取文件本身的一些信息,如文件所在的目錄、長度和文件的讀寫權(quán)限等。Java的File類也可表示目錄。文件相關(guān)的一個重要概念是目錄,在Java中并不存在一個對應(yīng)于目錄的類。實際上,不論是在Windows系統(tǒng)還是UNIX系統(tǒng)中,都將目錄是為一種特殊的文件。1)什么是File類四、文件類File在Java語言中,用F2)創(chuàng)建File對象四、文件類File1)publicFile(Stringpath);如果path是實際存在的路徑,則該File對象表示的是目錄;如果path是文件名,則該File對象表示的是文件。Filefile=newFile("src/chap09/face1(new).gif");為了加強程序的通用性,建議采用相對路徑,不要采用絕對路徑。2)publicFile(Stringpath,Stringname);path是路徑名,name是文件名。3)publicFile(Filedir,Stringname);dir是路徑名,name是文件名。2)創(chuàng)建File對象四、文件類File1)publicFi3)文件名的處理方法四、文件類File1)StringgetName():得到一個文件的名稱(不包括路徑)。2)StringgetPath():得到一個文件的路徑名。3)StringgetAbsolutePath():得到一個文件的絕對路徑名。4)StringgetParent():得到一個文件的上一級目錄名。5)StringrenameTo(FilenewName):將當(dāng)前文件名更名為給定的文件名。3)文件名的處理方法四、文件類File1)Stringge4)文件屬性測試四、文件類File1)booleanexists():測試當(dāng)前File對象所指示的文件是否在操作系統(tǒng)中存在。2)booleancanWrite():測試當(dāng)前文件是否可寫。3)booleancanRead():測試當(dāng)前文件是否可讀。4)booleanisFile():測試當(dāng)前文件是否是文件(不是目錄)。5)booleanisDirectory():測試當(dāng)前文件是否是目錄。4)文件屬性測試四、文件類File1)booleanexi5)目錄方法四、文件類File1)booleanmkdir():根據(jù)當(dāng)前對象生成一個由該對象指定的文件夾2)Stringlist():列出當(dāng)前目錄下的文件5)目錄方法四、文件類File1)booleanmkdir5)例題1-TestOfFileProperty.java四、文件類File題目要求:測試src/chap09/EnglishExercise.java的各種屬性。思路建立File對象調(diào)用File類的響應(yīng)方法輸出File對象的各種屬性運行界面截圖5)例題1-TestOfFileProperty.java四5)例題1-TestOfFileProperty.java四、文件類File題目要求:測試src/chap09/EnglishExercise.java的各種屬性。關(guān)鍵代碼建立File對象
Filefile1=newFile("D:/ourworkspace/CasesOfProgramming/src/chap09","EnglishExercise.java");Filefile2=newFile("D:\\ourworkspace\\CasesOfProgramming\\src\\chap09");調(diào)用File對象的方法輸出文件的各種屬性System.out.println("文件EnglishExercise是可讀的嗎:"+file1.canRead());System.out.println("文件EnglishExercise的長度:"+file1.length());System.out.println("文件EnglishExercise的絕對路徑:"+file1.getAbsolutePath());System.out.println("文件chap09是目錄嗎?"+file2.isDirectory());5)例題1-TestOfFileProperty.java四6)File類需要注意的問題:四、文件類File1.File類的構(gòu)造方法沒有創(chuàng)建一個文件或文件夾的功能調(diào)用File類構(gòu)造方法時,僅僅是以某個文件名或者目錄名為參數(shù),在程序運行環(huán)境中創(chuàng)建了一個File對象,而不是在文件系統(tǒng)中創(chuàng)建了一個新文件。File對象可以表示文件系統(tǒng)中對應(yīng)的目錄或文件,也可以表示在文件系統(tǒng)中尚不存在的目錄或文件。如:Filefile1=newFile( "D://ourworkspace//CasesOfProgramming//src//chap09", "Exercise.java");即使Exercise.java文件不存在,這個構(gòu)造方法也會創(chuàng)建一個File對象。但不會在系統(tǒng)指定目錄中創(chuàng)建文件名為Exercise.java的新文件。6)File類需要注意的問題:四、文件類File1.File6)File類需要注意的問題:四、文件類File1.File類的構(gòu)造方法沒有創(chuàng)建一個文件或文件夾的功能問題:在程序中應(yīng)該如何創(chuàng)建一個新文件?方法一:調(diào)用File對象的方法CreateNewFile(); try{ if(!file1.exists()){ file1.createNewFile(); } }catch(IOExceptione){}方法二:以File對象為參數(shù)來調(diào)用FileOutputStream的構(gòu)造方法來創(chuàng)建對象Fout時,如果創(chuàng)建File對象的文件名不存在,它可以在指定的目錄下創(chuàng)建這個新文件。FiledstFile=newFile("src/chap09/face1(new).gif");FileOutputStreamfout=newFileOutputStream(dstFile);6)File類需要注意的問題:四、文件類File1.File6)File類需要注意的問題:四、文件類File2.程序中文件目錄的表示問題一、使用絕對路徑1)使用Windows環(huán)境中的反斜杠“\”來表示一個路徑表達(dá)式。
Filefile1=newFile( "D:\\ourworkspace\\CasesOfProgramming\\src\\chap09", "EnglishExercise.java");2)使用UNIX環(huán)境中的正斜杠“/”來表示一個路徑表達(dá)式Filefile1=newFile("D://ourworkspace//CasesOfProgramming//src//chap09", "EnglishExercise.java");6)File類需要注意的問題:四、文件類File2.程序中文6)File類需要注意的問題:四、文件類File2.程序中文件目錄的表示問題一、使用絕對路徑3)直接使用沒有轉(zhuǎn)義處理正斜杠“/”來表示一個路徑表達(dá)式。
Filefile1=newFile("D:/ourworkspace/CasesOfProgramming/src/chap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五下十道題目及答案英語
- 東京入學(xué)考試題目及答案
- 養(yǎng)老院老人家屬溝通聯(lián)系制度
- 養(yǎng)老院服務(wù)質(zhì)量投訴處理制度
- 養(yǎng)老院財務(wù)管理與審計制度
- 辦公室績效考核與獎懲制度
- 針對施工現(xiàn)場人員的處罰制度
- 酒店規(guī)章制度獎罰制度
- 郵政兩條紅線四項基本制度
- 高考考試加分題目及答案
- 2025年考研英語真題試卷及答案
- 酒店治安安全管理制度范本
- 專家咨詢委員會建立方案
- 兼職剪輯外包合同范本
- 物業(yè)入戶維修標(biāo)準(zhǔn)及流程
- 生物濾池除臭裝置設(shè)計計算實例
- 選煤廠安全規(guī)程培訓(xùn)考核試題帶答案
- 八年級上冊道德與法治全冊知識點(2025年秋新版)
- 消防設(shè)備故障和維修的應(yīng)急響應(yīng)預(yù)案
- 護(hù)理安全隱患與防范措施課件
- 瀘州市龍馬潭區(qū)三叉河山洪溝治理項目環(huán)評報告
評論
0/150
提交評論