第05章JSP與文件操作_第1頁
第05章JSP與文件操作_第2頁
第05章JSP與文件操作_第3頁
第05章JSP與文件操作_第4頁
第05章JSP與文件操作_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第 5 章章 JSP與文件操作與文件操作 5.1 File對象的使用對象的使用 5.2 JSP應(yīng)用中的文件操作應(yīng)用中的文件操作 5.3 文件的上傳與下載文件的上傳與下載5.1 File對象的使用對象的使用 5.1.1 File對象簡介FILE對象主要用于以下兩個方面:對象主要用于以下兩個方面:(1)文件目錄的操作。)文件目錄的操作。(2)文件的操作。)文件的操作。創(chuàng)建一個創(chuàng)建一個File對象的語法結(jié)構(gòu)有以下兩種:對象的語法結(jié)構(gòu)有以下兩種:File File對象變量對象變量=new File(服務(wù)器端的絕對路徑服務(wù)器端的絕對路徑)File File 對象變量對象變量=new File(服務(wù)器端

2、的絕對路徑服務(wù)器端的絕對路徑, 文件名稱文件名稱) 5.1.2 文件目錄的操作1創(chuàng)建文件目錄 其語法結(jié)構(gòu)如下: File File對象變量對象變量=new File(服務(wù)器服務(wù)器端的絕對路徑端的絕對路徑); File File對象變量對象變量.mkdir();例1 DirCreate.jsp(效果如圖5.1所示)文件目錄的創(chuàng)建操文件目錄的創(chuàng)建操作作% String SubPath=request.getRealPath(“”); /獲獲取服務(wù)器端的絕對路徑取服務(wù)器端的絕對路徑SubPath=SubPath+Sub;File createSub =new File(SubPath); /創(chuàng)建一個

3、創(chuàng)建一個文件目錄對象文件目錄對象createSubif(createSub.exists()createSub.delete(); out.println(Sub目錄存在,已刪除目錄存在,已刪除); else createSub.mkdir(); /創(chuàng)建創(chuàng)建Sub目錄目錄out.println(Sub目錄不存在,已建立目錄不存在,已建立); out.println(創(chuàng)建了一個名為創(chuàng)建了一個名為Sub文件目錄文件目錄);out.println(其在服務(wù)器中的絕對路徑是:其在服務(wù)器中的絕對路徑是:);out.println(SubPath);%2判斷目錄文件是否存在首先建立首先建立File對象,再

4、用對象,再用File對象的對象的exists()方法來判斷文件目錄是否存在。方法來判斷文件目錄是否存在。其語法結(jié)構(gòu)如下:其語法結(jié)構(gòu)如下:File File對象變量對象變量=new File(服務(wù)器服務(wù)器端的絕對路徑端的絕對路徑);File File對象變量對象變量.exists();3刪除文件目錄其語法結(jié)構(gòu)如下:其語法結(jié)構(gòu)如下:File File對象變量對象變量=new File(服務(wù)器服務(wù)器端的絕對路徑端的絕對路徑);File File對象變量對象變量.delete();例2 DirDelete.jsp (效果如圖5.2所示)文件目錄的刪除操作文件目錄的刪除操作%String SubPath

5、=request.getRealPath(“”); /獲取服務(wù)器端的獲取服務(wù)器端的絕對路徑,賦值給絕對路徑,賦值給SubPathSubPath=SubPath+Sub;File deleteSub=new File(SubPath); /建立一個文件目錄對象建立一個文件目錄對象deleteSubout.println(刪除一個名為刪除一個名為Sub文件目錄文件目錄);out.println(第一步判斷此文件目錄是否存在:第一步判斷此文件目錄是否存在:);if(deleteSub.exists()out.println(Sub文件目錄存在。文件目錄存在。);out.println(其在服務(wù)器的絕

6、對路徑為:其在服務(wù)器的絕對路徑為:);out.println(SubPath);out.println(第二步將存在的第二步將存在的Sub文件目錄刪除文件目錄刪除);deleteSub.delete(); /調(diào)用調(diào)用delete方法刪除方法刪除Sub目錄目錄out.println(Sub文件目錄已經(jīng)刪除。文件目錄已經(jīng)刪除。);%5.1.3 文件的操作1文件的建立首先建立文件的首先建立文件的File對象對象,然后然后,調(diào)用調(diào)用File對象的對象的createNewFile()方法來建立方法來建立文件。其語法結(jié)構(gòu)如下文件。其語法結(jié)構(gòu)如下:File File對象變量對象變量=new File(服務(wù)器

7、服務(wù)器端的絕對路徑端的絕對路徑,文件名稱文件名稱);File File對象變量對象變量.createNewFile();例3 FileCreate.jsp(效果如圖5.3所示)文件的創(chuàng)建操作文件的創(chuàng)建操作%String FilePath=request.getRealPath();File createFile=new File(FilePath,NewFile.txt);if (createFile.exists() )out.println(已經(jīng)存在名為已經(jīng)存在名為NewFile文件文件);elsecreateFile.createNewFile() ;out.println(創(chuàng)建了一個名

8、為創(chuàng)建了一個名為NewFile文件文件);out.println(其在服務(wù)器中的絕對路徑是:其在服務(wù)器中的絕對路徑是:);out.println(FilePath+NewFile.txt);%2判斷文件是否存在首先建立文件首先建立文件File對象,再調(diào)用對象,再調(diào)用File對對象的象的exists()方法判斷文件是否存在。方法判斷文件是否存在。其語法結(jié)構(gòu)如下:其語法結(jié)構(gòu)如下:File File 對象變量對象變量=new File(服務(wù)器服務(wù)器端的絕對路徑端的絕對路徑,文件名稱文件名稱);File File對象變量對象變量.exists();3文件的刪除首先建立文件File對象,再調(diào)用File對

9、象的delete()方法刪除文件。其語法結(jié)構(gòu)如下:File File 對象變量=new File(服務(wù)器端的絕對路徑,文件名稱);File File對象變量.delete();例4(效果如圖5.4所示)FileDelete.jsp文件的刪除操作文件的刪除操作%String FilePath=request.getRealPath();File deleteFile=new File(FilePath,NewFile.txt);out.println(刪除一個名為刪除一個名為NewFile文件文件);out.println(第一步判斷此文件是否存在:第一步判斷此文件是否存在:);if(delet

10、eFile.exists()out.println( NewFile文件存在。文件存在。);out.println(其在服務(wù)器的絕對路徑為:其在服務(wù)器的絕對路徑為:);out.println(FilePath);out.println(第二步將存在的第二步將存在的NewFile文件刪除文件刪除);deleteFile.delete();out.println( NewFile文件已經(jīng)刪除。文件已經(jīng)刪除。);elseout.println( NewFile文件不存在。文件不存在。);%4獲取文件屬性File對象對象.getName():獲取文件的名字。:獲取文件的名字。File對象對象.canR

11、ead():判斷文件是否可讀。:判斷文件是否可讀。File對象對象.canWrite():判斷文件是否可被寫入。:判斷文件是否可被寫入。File對象對象. length():判斷文件的長度(單位是字節(jié))。:判斷文件的長度(單位是字節(jié))。File對象對象.getAbsolutePath():獲取文件的絕對路徑。:獲取文件的絕對路徑。File對象對象.getParent():獲取文件的父目錄。:獲取文件的父目錄。File對象對象.isFile():判斷文件是否是一個正常文件,而:判斷文件是否是一個正常文件,而不是目錄。不是目錄。File對象對象.isDirectroy():判斷文件是否是一個目錄。

12、:判斷文件是否是一個目錄。File對象對象.isHidden():判斷文件是否是隱藏文件:判斷文件是否是隱藏文件.File對象對象.lastModified():獲取文件最后修改的時間:獲取文件最后修改的時間(時間是從(時間是從1970年午夜至文件最后修改時刻的毫秒年午夜至文件最后修改時刻的毫秒數(shù))。數(shù))。5獲取目錄下的文件獲取目錄下的文件,首先需要先建立一獲取目錄下的文件,首先需要先建立一個目錄的個目錄的File對象,再調(diào)用對象,再調(diào)用listFiles()方方法來獲取目錄下的文件名稱。其語法結(jié)法來獲取目錄下的文件名稱。其語法結(jié)構(gòu)如下:構(gòu)如下:File對象變量對象變量.listFiles()

13、; 例6. GetDirFile .jsp(效果如圖5.6所示) 取出目錄中文件的方法取出目錄中文件的方法-列出目錄中的文件列出目錄中的文件 % String path=request.getRealPath(); File d=new File(path); File list=d.listFiles(); out.println( + path + 目錄下的目目錄下的目錄:錄:);for(int i=0;ilist.length;i+)if (listi.isDirectory()out.println(listi.getName() + );out.println( + path + 目

14、錄下的文件:目錄下的文件:);for(int i=0;ilist.length;i+)if (listi.isFile()out.println(listi.getName() + );%6獲取特定類型的文件String list(FilenameFilter obj);該方法用字符串形式返回目錄下的指定類型的所有文件。File listFiles(FilenameFilter obj);該方法用File對象返回目錄下的指定類型的所有文件。其中FilenameFilter 是一個接口,該接口有一個方法:accept(File dir,String name) ;5.2 JSP應(yīng)用中的文件操作應(yīng)

15、用中的文件操作 5.2.1 文件中逐個數(shù)據(jù)的讀取文件中數(shù)據(jù)是通過建立一個文件中數(shù)據(jù)是通過建立一個FileReader對象來對象來進(jìn)行逐個讀取的。進(jìn)行逐個讀取的。FileReader FileReader對象變量對象變量=new FileReader(文件磁盤路徑與文件名稱文件磁盤路徑與文件名稱);建立了建立了FileReader對象之后,通過對象之后,通過FileReader的的read()方法來讀取文件中的字符,如讀取文方法來讀取文件中的字符,如讀取文件中的某個字符、幾個字符或者全部字符。如件中的某個字符、幾個字符或者全部字符。如果文件沒有字符存在或讀到文件的末尾時,這果文件沒有字符存在或讀

16、到文件的末尾時,這時時read()方法返回的值為方法返回的值為1。 read()方法的語法結(jié)構(gòu)如下:方法的語法結(jié)構(gòu)如下:FileReader 對象變量對象變量.read(字符型數(shù)組字符型數(shù)組,開始開始讀取的位置讀取的位置,讀取的字符個數(shù)讀取的字符個數(shù));FileReader對象還提供了一種方法對象還提供了一種方法skip(),該,該方法可以使得用戶可以跳過一些字符不進(jìn)行讀取。方法可以使得用戶可以跳過一些字符不進(jìn)行讀取。其語法結(jié)構(gòu)如下:其語法結(jié)構(gòu)如下:FileReader 對象對象.skip(要跳過的不讀取的字符要跳過的不讀取的字符的數(shù)目的數(shù)目);當(dāng)當(dāng)FileReader對象的任務(wù)完成后,需要關(guān)

17、閉對象的任務(wù)完成后,需要關(guān)閉FileReader對象,調(diào)用對象,調(diào)用close()方法。其語法結(jié)構(gòu)如方法。其語法結(jié)構(gòu)如下:下: FileReader 對象變量對象變量.close();5.2.2 5.2.2 文件中以行為單位的數(shù)據(jù)讀取文件中以行為單位的數(shù)據(jù)讀取JSP頁面中,文件中以行為單位進(jìn)行的數(shù)據(jù)頁面中,文件中以行為單位進(jìn)行的數(shù)據(jù)讀取是通過建立一個讀取是通過建立一個BufferedReader對象對象來實現(xiàn)的。其語法結(jié)構(gòu)如下:來實現(xiàn)的。其語法結(jié)構(gòu)如下:BufferedReader BufferedReader對象變對象變量量=new BufferedReader(FileReader對象對象

18、變量變量);建立建立FileReader對象之后,通過對象之后,通過BufferedReader對象的對象的readLine()方法來方法來讀取文件中的整行字符讀取文件中的整行字符,如讀取文件中的,如讀取文件中的某行字符、幾行字符或全部字符。如果文某行字符、幾行字符或全部字符。如果文件中沒有數(shù)據(jù)或讀到文件最后,這時件中沒有數(shù)據(jù)或讀到文件最后,這時readLine()方法返回的結(jié)果為方法返回的結(jié)果為null。readLine()方法的語法結(jié)構(gòu)如下:方法的語法結(jié)構(gòu)如下: BufferedReader對象變量對象變量.readLine();當(dāng)當(dāng)BufferedReader對象的任務(wù)完成后,需要對象的

19、任務(wù)完成后,需要關(guān)閉關(guān)閉BufferedReader對象。調(diào)用對象。調(diào)用close()方方法來實現(xiàn)。其語法結(jié)構(gòu)如下:法來實現(xiàn)。其語法結(jié)構(gòu)如下:BufferedReader對象變量對象變量.close();例例9. FileReadbyLine.jsp文件讀取文件讀取%String path=request.getRealPath(); FileReader fr=new FileReader(path + FileCreate.txt); BufferedReader br=new BufferedReader(fr); String Line=br.readLine(); while(Lin

20、e!=null)out.println(Line + ); Line=br.readLine(); br.close(); fr.close(); %5.2.3 無分行數(shù)據(jù)寫入在在JSP頁面中,數(shù)據(jù)無分行寫入是通過建頁面中,數(shù)據(jù)無分行寫入是通過建立一個立一個FileWriter對象來完成的。其語法對象來完成的。其語法結(jié)構(gòu)如下:結(jié)構(gòu)如下:FileWriter FileWriter對象變量對象變量=new FileWriter(文件磁盤路徑與文件名稱文件磁盤路徑與文件名稱);建立FileWriter對象之后,通過FileReader對象的write()方法來將數(shù)據(jù)寫入文件中。其語法結(jié)構(gòu)如下幾種:(1)FileWriter對象變量.write(字符);(2)FileWriter對象變量.write(字符數(shù)組);(3)FileWriter對象變量.write(字符數(shù)組,起始位置,寫入的字符數(shù));(4)FileWriter對象變量.write(字符串); 5.2.4 分行數(shù)據(jù)寫入 數(shù)據(jù)分行寫入文件的newLine()方法語法結(jié)構(gòu)如下: BufferedWriter 對象變量.newLine(); Write()方法語法機構(gòu)也有以下幾種:(1)Buffe

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論